<SEC-DOCUMENT>0001558370-22-001753.txt : 20220223
<SEC-HEADER>0001558370-22-001753.hdr.sgml : 20220223
<ACCEPTANCE-DATETIME>20220223163656
ACCESSION NUMBER:		0001558370-22-001753
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		98
CONFORMED PERIOD OF REPORT:	20211231
FILED AS OF DATE:		20220223
DATE AS OF CHANGE:		20220223

FILER:

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

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

	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-K
<SEQUENCE>1
<FILENAME>fix-20211231x10k.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='UTF-8'?>

      <!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 9.6.8042.36810 -->
      <!-- Based on: iXBRL 1.1 -->
      <!-- Created on: 2/23/2022 9:26:30 PM -->
      <!-- iXBRL Library version: 1.0.8042.36816 -->
      <!-- iXBRL Service Job ID: d7163247-6310-460f-b698-74cefdafa16c -->

  <html xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" 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/20211231" xmlns:srt="http://fasb.org/srt/2021-01-31" 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/2021q4" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" 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_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" name="us-gaap:CommitmentsAndContingencies" id="Hidden_DQI8CAkq1kGaYXTwcltuMQ"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" name="us-gaap:CommitmentsAndContingencies" id="Hidden_cmjxRYMM7Em3tFv4ClbdXg"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" name="us-gaap:PreferredStockValue" id="Hidden_g_ocsM_YeECjnxxZRGU3aA"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" name="us-gaap:PreferredStockValue" id="Hidden_gx4fZnbk4kefI_SljoPrhA"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" id="Hidden_qeeW_Mhz_kK5lW_N8t46sw"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" xs:nil="true" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" id="Hidden_YsyGhjT4RUuLi3Lets5Aqg"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanTwoMember_rlkGH_8ZSUeoCQU2gSWJYA" decimals="0" name="fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy" id="Hidden_YtnPa85EZUG1LYw17wGRBw">350000</ix:nonFraction><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation" id="Hidden_kZ9mqrjuIkuTp1OYmXuhBQ">true</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" id="Hidden__6kHnwHXfUKaXue5L9jw7w">0</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" id="Hidden_1tXxFzWPLUKtcKbZl3grTw">0</ix:nonFraction><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_Y1uXuWFR5EKMZBes5EHntg" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_CcfO-HB-okeWU5MqGAiZHQ">P1Y</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanThreeMember_OLJ1wzNVLU60hls9lr1hKw" decimals="0" name="fix:SelfInsuranceDeductibleAmountPerIncident" id="Hidden_STJq7lThfkubfTudKLui7w">350000</ix:nonFraction><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA" name="fix:PaymentsReceivedTerm" id="Hidden_riBRZn21y0eQAjcY6Boz0Q">P30D</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityCentralIndexKey" id="Tc__ICr1PyBw0ehLzQHoFstcg_2_1">0001035983</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentFiscalYearFocus" id="Tc_fr93nnrn9k6VeoPY5bxRHg_4_1">2021</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentFiscalPeriodFocus" id="Tc_K2SchF_mcUmVSQPZnn5Npg_5_1">FY</ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:AmendmentFlag" id="Tc_NhY5zO-MCEuBGe1OKAGaqg_6_1">false</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" id="Hidden_ZoYV9Ak1x0qoBQBxKtcfzA">http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" name="us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" id="Hidden_2cVqb2UXk0qLrryqjipzPQ">http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_uBpDF5bF80K3aXzZkPip9g" name="us-gaap:LesseeOperatingLeaseTermOfContract" id="Hidden_Jy-T07AOW0GkRD4aV4OpIQ">P3Y</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ" decimals="-5" name="fix:GainRecordedAsReductionInCostOfServicesExpense" id="Hidden_ya8cO3-ldUOAIAIbX8MKow">3200000</ix:nonFraction><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA" name="fix:ReceivableDueTerm" id="Hidden_gm00fDXIjUiWVD1l4A7FZg">P45D</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" name="us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" id="Hidden_FgMkO2rf00CIiBtTbwWcSQ">http://fasb.org/us-gaap/2021-01-31#OtherLiabilities</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="fix-20211231.xsd"></link:schemaRef></ix:references><ix:resources><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_OrX3k8Mra0SMowQ1DM179A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_o9XNW7IAuUWHyBzMBoG5hQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">fix:TaxYears2016To2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-07-01</xbrli:startDate><xbrli:endDate>2020-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_HAHm8VeHFkqX3ve2F7PpQA"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg"><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>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_StPrCiBetkuLKqMF70IYjw"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_XDJscgAzdUGihjM6TZH90w"><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="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_nngfx7WNNUSuh314z2prEw"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GDm_X5w_JkOWpnLGDap6pA"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ejq1fDLKfE2zYdVu-X7maw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gvJg1FFo30G2CGat9dSB7A"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_rbFz2HkyIUmBi3TvgjLIUA"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember__WriG1u5eUelXYKaXjjxZQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_28u-wZbMN0ybX624baJDcw"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_3ZMHZXUKbkKjuqWon5IuCQ"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_g9pCif2xtUinDsa9OmkIKw"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_TtB2KgWAbUSYEJuZo5jLyw"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember__Ygvz9Bia0C9yTDza1KaXw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_pSGnW_R4hUqiqPqmNla8MQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_p2A2AKqPZ0Ka_xwC-Mw8fA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_MP9TuGHwgkKr3t_gkjwQfg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_2TDYtv8R7kOzs7W1j1ve-g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_lqhw-ZMnekG_F5M0xEZSZw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:OmnibusIncentivePlan2017Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member__4F9hnKzF06tBh5Un2QPfg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:EquityIncentivePlan2012Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_5_31_2017_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_X4x_ToKsyEabhYk7zXHekA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:OmnibusIncentivePlan2017Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_5_31_2012_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member_MaOHwMApYky_GP_adjnIHA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:EquityIncentivePlan2012Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2012-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember_AO-XwJFX90GvX7_VBZ9rCw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_sM7XPaiI-Eukfog9MYendg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_-2XKPZFsX0qjeBT0aHlolg"><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>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_5OPwwdVo-Ueo1GzHPbh61A"><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>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA"><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>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_Q1OqB17gXEumo0a39qVC5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_-la0iODr2kObdGoUPdvaIQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_C6ecXKwanEaPzyzIvmCNUA"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_1XDoZwPjwkuXhKJ_PPmhuQ"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_YdsRN5BWkkGW0leygAn9rw"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_CfjJ7lpZBEmN9BESr9T6vQ"><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:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_KMSArFTvnUWXY3MQZgMe8Q"><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:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_wqg8tYEFcUqNXIPGuDQO7A"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_ohjUZXDvqEmz_tIWZxTtTQ"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_ZWSx8AeTwkG1jZc1EpNWmQ"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_sg3HNZ_HvUuT_GVRoogW7Q"><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:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_Z7hfTyj8UEuMOBuiByFVKw"><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:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_8dno5vJvb06Aj61uFxC6ew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_88azp6s78kSUSFUztFc8gQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_apRQpgl3pEKC10gNy-HpFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7_8Soz4n10eFV13Hansrsw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_RynWBONYdU2zhg1hyMtZXA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_Yvj1j1EMc0qYWARF1IJuqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_1HoQL2TdLUuevW9FSC-4EA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_JD2hZBZ5SUeQguMFQIU78A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_rp5djebjj0G_OZvpOkSONQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_o8jPpr8g6Uy_QIuP8eHCqg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_uRyPTRAiJkSF6K3-uQLP7A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_sehftOd7T0-3_DJg2qdVyw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_53Y1EGQrO0adgH-r_TpjiQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_IiLBu4et_EGxmH_5eh6kSQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_P-U_axaeAUSCpyPBJfFlTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_e4IazHmIVEClFC554FxRrA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_mQ7eJpZb-kq3uBkiPbm_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_RJ8mDCkkMk6GLBc3oTSXlw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-20</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_NvMtvyRE0kivbU5z_rcaxQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_NotesPayableOtherPayablesMember_3TceZDXMdk28FCIkhn0bqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:NotesPayableOtherPayablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_TCGtcfu8HUu1XCBfxeU4QA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_87gmMkjc-Ea2tymjomRPyA"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_CounterpartyNameAxis_fix_CustomerMember_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_Mbc2I9cwlU2yiu47XX-7yw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">fix:CustomerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LitigationStatusAxis">us-gaap:PendingLitigationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:PerformanceGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_oppgyQDECk2oTRBo51MDtg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_1_6yX_X160OaMlQlIXX9rw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_pF_M-6Fcz0KYjaZtcu1fRg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_wpTTXOlM3kibatpFqpl_AA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_uBpDF5bF80K3aXzZkPip9g"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_nlhjt_7QjEKUrazO_uTBYw"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_1_2019_To_9_30_2019_zNRK5BKIsE6EkWb207MkPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-07-01</xbrli:startDate><xbrli:endDate>2019-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2018_To_12_31_2018_6B76gRgqekyF7BTGXtPV5A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2018Member_EXAQ6l6KZEmmvwoMAZXH_w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2017Member_YhPRpAVlh0iWjzAJl-7lpQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2017Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2016Member_SCaKsNy-BEaoPjyM0b9Nbw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2016Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_5D0tgvjB3EueSdv0DRNTBw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">fix:TaxYears2016To2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_30_2020_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_M5Au-W_Ubk2x31vaTGd5kw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g"><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:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg"><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:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw"><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:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw"><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:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ"><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:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg"><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:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_ar_ag92PHEiDf08xJaI7aA"><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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_x4A3QhhopkyA0HhaFU6mxw"><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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_yZXemmdOR0mhiQFn-HuCNg"><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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_jEVx-uqoe0awJkaSi1dcEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_O3vrB75OAUChrN8BNgQyHw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_gbBn4xug80Kz7YZIgH5Ebw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_NWGbM_25nk64LhchArxZng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_ciNp9JVhz0SqLbz9bc_Cog"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_pk_-pvFBPEC-kpLb5ViLYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_4ZFN5dJoIUemxttzkM3voQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_O8MqIgnETES13KHlS7-3Qg"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_pOFVUUPNK0-RRbDBckuLKg"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhF8GnyjDkyymQ0k65MU3A"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_Y1uXuWFR5EKMZBes5EHntg"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">fix:CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_4uCHXny_RkuVPPut7vqdaA"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">fix:CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_05lSAAOfkkGatc_hnwcyNg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_rFPxktgrDkq3nRDOp24QTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_34JxfyWAm02qkzKThyCKsg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_q2VBjuRXZk2QnwTez7qDmA"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_VwAzqWzhvECF_cO1GBaXDA"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_fPT1dRnlmUCCPgxmfZwEAw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_1AoYVA5a0UeCQKCjTKsegw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_RlglHquN80C9VXs9bcyw7A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ngYadPqEmUC_793WwuLXYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_w2Uj0_fu50qSf60D4JhNfQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_SZhX28GSYEOR7KY9ezPUDA"><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">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_J7SWYOC9fUCHryuapvnRqA"><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">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MepHoldingCo.IncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:IveyMechanicalCompanyLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_HwNUN2Aqh02ex4HfRer4uA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateSixMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_P_RvjWuavkOfFwz2e0n1dQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateFederalFundsRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_2TOFd-VRgECF_I-EMtJ9xw"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hyndtCapbkikNBx4-T5mxg"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Tj-eh9hBLkKRRnWvkWGArA"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_gcCzQltf0UCsmXZlxfcb6A"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Lq7kpwH1MUqsTAnspI_lcg"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_az6CzfTUoUWVkPoVp6fwSw"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_eSZn6fMmsEi0k_rZehIQ5A"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_6ikDRMVBxUOW-4NlI795gw"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_m1VZ78HdP0646vPIMiOfeg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InitialApplicationPeriodCumulativeEffectTransitionAxis">us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_ConcentrationRiskByBenchmarkAxis_fix_SalesRevenueMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_o4wGaQ2_jEOXo_B6UOh18A"><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:ConcentrationRiskByBenchmarkAxis">fix:SalesRevenueMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_oSqTtO5eJ0SKvvHXWsmlSw"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_C5NktTUsJUW1VCxCkx_q7w"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_3Oz01fAJSEeZVas33dwxfQ"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_X7yJX-mSrU-nteLMR5PKUg"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_aC0lha81vEKDqtRcnn1P-w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_htNTGfhxb02w2Z_8YXoSsQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_BOzF4jca5EKl3Uj4BVXJRg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_nri7_FBwG0KcoVuDF89kpw"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_z7mtxKiNHEyV3EiWBO35WQ"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MepHoldingCo.IncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-31</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorKentuckyMember_dHA321h0Ek2VAqce0UEuaw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorKentuckyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-31</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorIndianaMember_x3t2Ln50aUSMmwiX7aetFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorIndianaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-31</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:IveyMechanicalCompanyLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_3_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorUtahMember_wlDa3Mr6o0GiEpfXtbLe6w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorUtahMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_3_31_2020_us-gaap_BusinessAcquisitionAxis_fix_ElectricalContractorNorthCarolinaMember_S1phPGY1LUaxPOfBYtNHrw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:ElectricalContractorNorthCarolinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_Pl5JNyTdwEuExkUGgvxiWA"><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:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_QK87lvCEFEeaZnIWHdi9PQ"><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:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_tLE31vHPOU6043kMT4WWkQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_m8LIORfOs0Wtc0Mh1nc46w"><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:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_GUSkRB9uL0qVcKDRmgb3aQ"><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:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_j-W2z0OaUUyD3hgq7N05mQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_HUBuliTaLka1hi-Y0urXxA"><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:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_MDW920TLfEGBXUbYyXDF-g"><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:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_h5ywFeT7FUa235wPMCtwOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_mvqmfs3lMEKMBkhnUnvcqA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_ZQhsY7wyskqSaU2eSEUUDA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_sk2YKkoNrUmLFi4ANUXtvQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ServicesActivityMember_T-koUBf_YEe9irSQZvCyZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_HiNGDrv8wUuHEmHlOpGe9Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_9SDAJRGL7k2bd1DHR0pMjw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_hs1uVtRQu0GDdUMe7AiKyQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZrPMMuESiUOJlowLOYivqg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_zib6Ek_D2UW5TrcoW1eA1g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iBFZquizlEal0mRaYsizMA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_8_2020_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_NcowEMOjcECN5l3FkBq3Zg"><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>2020-12-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalMember_WP5DJYN1cke6lZSaEudAfQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanTwoMember_rlkGH_8ZSUeoCQU2gSWJYA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanOneMember_TFzL1__IbUSyj03-uawq1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_Xd2YTgeJJUmJn4FFA843Iw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployersLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanThreeMember_OLJ1wzNVLU60hls9lr1hKw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:GeneralLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:WorkersCompensationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:AutoLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_BR-evTo8skW1q-KzV_SeVw"><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:GeneralLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_-GKW7Q3ip0mxigKVVAYiCQ"><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">fix:EmployersLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_JsfG-PJXuUGAtMCB5QSbCw"><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">fix:AutoLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:SystemInstallationInNewlyConstructedFacilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MaintenanceRepairAndReplacementServiceMember_Zgr028iIY0KoMb6WF6_NqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MaintenanceRepairAndReplacementServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_20_2019_To_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_dMpgsjhRT0CYASNM6Dw1fw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-20</xbrli:startDate><xbrli:endDate>2019-12-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_19_2019_To_12_19_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_PQDkiwC6d0qdS8fcKajinQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-19</xbrli:startDate><xbrli:endDate>2019-12-19</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_TIRAAjbzQE-xstZuxMM9ww"><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:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ORtjML83106tX4PSDAn5xQ"><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:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_aC11Na-UtkSXBk48xtvyzw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_RutgiWxKtUmym0RBAhJ6JA"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_v1DvR0XCTE6OEwD3U51ljg"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_axranmOZHUKK7DGCmEVbEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-20</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LitigationStatusAxis">us-gaap:PendingLitigationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:PerformanceGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg"><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:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2022_To_3_31_2022_srt_StatementScenarioAxis_srt_ScenarioForecastMember_vjmHLjEnfEe7F0AsMXTz4w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-10-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_94MfVwXlx0qeB3SPPKcD5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_k12gmJXdMk-MQufdpmrT3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_bsKJgzCU80yaQtj_xZcD1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember__xmO7ZpnR0edSVgVwQ6_2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_UVJ4gzu9Pkeji3DxTyIPfA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateSixMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_yGK5mhQa0kWTAf8_VyhZag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_jDK33UXujUm3Sh_8EG7ZCA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hOTR_7DRhEquG4W5z7ClIA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateFederalFundsRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_srt_StatementScenarioAxis_fix_ScenarioCovenantRequirementMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_PvPVAIJ0xE6eAUdS3G69fQ"><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="srt:StatementScenarioAxis">fix:ScenarioCovenantRequirementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA"><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:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_fix_DebtCovenantEffectiveDateAxis_fix_ThroughMaturityMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_OPi3mk8UhEyWfglP37eGFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="fix:DebtCovenantEffectiveDateAxis">fix:ThroughMaturityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_nClKzh0mOk60_cNUnDRYHg"><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:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_9Cm74uBn102W9O3QmvG5gQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TECIndustrialConstructionAndMaintenanceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_TH6lFYVDIE6sBs8j3Ld5Og"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TasEnergyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-04-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_xDUpgl2P7kSc5svmw1j7Kg"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Ugs_7TJxDUeE-udZq2scUQ"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_mdgYGEHA10S1t7vuh8iXuQ"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_-pccivjDLkiX5p9hMiZviQ"><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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-08-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TECIndustrialConstructionAndMaintenanceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-10-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TasEnergyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-04-01</xbrli:startDate><xbrli:endDate>2020-04-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-01</xbrli:startDate><xbrli:endDate>2021-08-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_LzyA2-ftwU-WoA6TssuP-A"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ctFv_0z9O0WR3nrjBcS6fg"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_30_2021_kxsV_zEQA0GYvEMUk3FzKQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_18_2022_jQjmtqpUSECoDA87yriGeA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-02-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001035983</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q"><xbrli:measure>fix:item</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_Option_dsaBN6XxaEiIib8B3c8M0w"><xbrli:measure>fix:Option</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ"><xbrli:measure>fix:segment</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><div style="max-width:100%;padding-left:4.47%;padding-right:4.47%;position:relative;"><div style="margin-top:7.2pt;min-height:20.15pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><a href="#Toc"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:10.35pt;"><div style="padding-top:1.0px;border-top:3.0pt solid #000000;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-top:1pt;border-top:1.0pt solid #000000;margin:0pt;"><span style="font-size:4pt;visibility:hidden;">&#8203;</span></p><a id="_b86b2538_2203_481f_bd91_6ea141e51482"></a></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:17pt;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:17pt;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 4pt 0pt;"><b style="font-size:17pt;font-weight:bold;">Washington, D.C. 20549</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:9.0pt;margin-bottom:4pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:17pt;text-align:center;margin:0pt 0pt 4pt 0pt;"><b style="font-weight:bold;">Form&#160;</b><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentType" id="Narr_lEq6dNuYPU6VSQk0hMu_rw"><b style="font-weight:bold;">10-K</b></ix:nonNumeric></p><a id="_2ce7c497_9726_4abc_9483_99c5d0b9e02c"></a><a id="Tc_fSuBhTY9LE2MQoLOBeECdA_2_0"></a><a id="Tc_KXYkbhkjL0yEXQkeh8z4NA_3_1"></a><a id="Tc_JXtwfUYD-02mX-NXkZLLdQ_4_0"></a><a id="Tc_nSPxA4R2rkOiwhKAsfIQKw_5_0"></a><a id="Tc_sUDbOofDx0Wvqh2POe8xQQ_6_1"></a><a id="Tc_aD69RUHKhkOoZGmdqGqTxw_7_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:95.29%;"><tr style="height:1pt;"><td style="vertical-align:top;width:11.82%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"></td><td style="vertical-align:bottom;width:88.17%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr style="height:1pt;"><td style="vertical-align:top;width:11.82%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"></td><td style="vertical-align:bottom;width:88.17%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:11.82%;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;">(Mark One)</b></p></td><td style="vertical-align:top;width:88.17%;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:11.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:boolballotbox" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentAnnualReport" id="Tc_ttPTyI3isku-h7hUPJ1REg_3_0"><span style="font-family:'Segoe UI Symbol';">&#9746;</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:88.17%;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;">ANNUAL 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;">For the fiscal year ended </b><ix:nonNumeric format="ixt:datemonthdayyearen" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentPeriodEndDate" id="Narr_ff0nrvT3VkOttmKSl0LQcQ"><ix:nonNumeric format="ixt:datemonthdayen" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:CurrentFiscalYearEndDate" id="Narr_9jIm8Oh1pEqSXhsmX15rTQ"><b style="font-weight:bold;">December 31</b></ix:nonNumeric><b style="font-weight:bold;">, 2021</b></ix:nonNumeric></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;">OR</b></p></td></tr><tr><td style="vertical-align:top;width:11.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:boolballotbox" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:DocumentTransitionReport" id="Tc_Xb9p94RJcEm6rBuqJZMnIA_6_0"><span style="font-family:'Segoe UI Symbol';">&#9744;</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:88.17%;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;text-align:center;margin:4pt 0pt 4pt 0pt;"><b style="font-size:9pt;font-weight:bold;">Commission file number: </b><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityFileNumber" id="Narr_MqfVtWaBLUumsfD07ldM_A"><b style="font-size:9pt;font-weight:bold;">1-13011</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:17pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityRegistrantName" id="Narr_-h2MpOyHZkK2hB2NFkznxw"><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:9pt;text-align:center;margin:0pt 0pt 4pt 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 style="height:1pt;"><td style="vertical-align:top;width:50%;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%;"><p style="font-family:'Times New Roman','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:50%;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%;"><p style="font-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: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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityIncorporationStateCountryCode" id="Narr_6SGUoX-aD0-flHFVOYIuUA"><b style="font-size:9pt;font-weight:bold;">Delaware</b></ix:nonNumeric><span style="font-size:9pt;"><br /></span><span style="font-size:9pt;">(State or Other Jurisdiction of</span><span style="font-size:9pt;"><br /></span><span style="font-size:9pt;">Incorporation or Organization)</span></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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityTaxIdentificationNumber" id="Narr_1o9MY7PnlUuN_OZTcUR-GQ"><b style="font-size:9pt;font-weight:bold;">76-0526487</b></ix:nonNumeric><span style="font-size:9pt;"><br /></span><span style="font-size:9pt;">(I.R.S. Employer</span><span style="font-size:9pt;"><br /></span><span style="font-size:9pt;">Identification No.)</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-align:center;margin:6pt 0pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityAddressAddressLine1" id="Narr_4qZgfAjBF0eDtlRCVCqYaA"><b style="font-size:9pt;font-weight:bold;">675 Bering Drive</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityAddressAddressLine2" id="Narr_vU4hVC4I9k-nLuk0kW2RBw"><b style="font-size:9pt;font-weight:bold;">Suite&#160;400</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityAddressCityOrTown" id="Narr_Tf743UK0uU2jcRPop6v3qQ"><b style="font-size:9pt;font-weight:bold;">Houston</b></ix:nonNumeric><b style="font-size:9pt;font-weight:bold;">, </b><ix:nonNumeric format="ixt-sec:stateprovnameen" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityAddressStateOrProvince" id="Narr_aJ3OJI3EH0G1wquT66CVig"><b style="font-size:9pt;font-weight:bold;">Texas</b></ix:nonNumeric><b style="font-size:9pt;font-weight:bold;"> </b><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityAddressPostalZipCode" id="Narr_VHOHZNB_dEKOeMqaErXUHA"><b style="font-size:9pt;font-weight:bold;">77057</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:9pt;font-weight:bold;">(</b><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:CityAreaCode" id="Narr_namPPZ5uTUm9P7yiUa3uNw"><b style="font-size:9pt;font-weight:bold;">713</b></ix:nonNumeric><b style="font-size:9pt;font-weight:bold;">)&#160;</b><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:LocalPhoneNumber" id="Narr_bNI8j1Fty0qdSkm6NJVxaQ"><b style="font-size:9pt;font-weight:bold;">830-9600</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt 0pt 4pt 0pt;">(Address and telephone number of Principal Executive Offices)</p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;">Securities registered pursuant to Section&#160;12(b) of the Act:</p><a id="_d4ee9250_c07f_4ef3_8345_620358d015ea"></a><a id="Tc_jJt-8a-LJ0KAS9i-Kp3ifQ_1_0"></a><a id="Tc_QPAnz6mLzky8ZxloCexmpQ_1_1"></a><a id="Tc_q9KvcLVB-U2h_1jxii0luQ_1_2"></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:81.27%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.81%;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: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></td><td style="vertical-align:bottom;white-space:nowrap;width:24.8%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:43.38%;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:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.81%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-align:center;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Title of Each Class</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.8%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-align:center;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;Trading Symbol(s)</b></p></td><td style="vertical-align:bottom;width:43.38%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top: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;">Name of Each Exchange on which Registered</b></p></td></tr><tr><td style="vertical-align:top;width:31.81%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:Security12bTitle" id="Tc_cgHDPzEK2U6YIcLsNgvD7w_2_0"><span style="font-size:9pt;">Common Stock, $.01 par value</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.8%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-align:center;text-indent:-7.2pt;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:TradingSymbol" id="Tc_7i8cFoDu-k2EDAVt71I-lA_2_1"><span style="font-size:9pt;">FIX</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;width:43.38%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric format="ixt-sec:exchnameen" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:SecurityExchangeName" id="Tc_Phr5bMvwjkWkCCvOMYuHrA_2_2"><span style="font-size:9pt;">New York Stock Exchange</span></ix:nonNumeric></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:9pt;text-indent:36pt;margin:4pt 0pt 4pt 0pt;">Securities registered pursuant to Section&#160;12(g) of the Act: <b style="font-weight:bold;">None</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;"><span style="font-size:9pt;">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule&#160;405 of the Securities Act.&#160;</span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityWellKnownSeasonedIssuer" id="Narr_oEWoyXq8Rk2Lh6Vj0CuvEw"><span style="font-size:9pt;">Yes</span></ix:nonNumeric><span style="font-size:9pt;">&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#8999;</span><span style="font-size:9pt;white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;"><span style="font-size:9pt;">Indicate by check mark if the registrant is not required to file reports pursuant to Section&#160;13 or 15(d) of the Act.&#160;Yes&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#9723;</span><span style="font-size:9pt;white-space:pre-wrap;">  </span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityVoluntaryFilers" id="Narr_sSEUXlXEHEu4wh64fzuCMg"><span style="font-size:9pt;">No</span></ix:nonNumeric><span style="font-size:9pt;">&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#8999;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;"><span style="font-size:9pt;">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;</span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityCurrentReportingStatus" id="Narr_zpDTvCyoN0-tRa5oTSztzQ"><span style="font-size:9pt;">Yes</span></ix:nonNumeric><span style="font-size:9pt;">&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#8999;</span><span style="font-size:9pt;white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;"><span style="font-size:9pt;">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 (&#167;&#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;</span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityInteractiveDataCurrent" id="Narr_6yPiu5Bz1UiaAc6JEdSx8A"><span style="font-size:9pt;">Yes</span></ix:nonNumeric><span style="font-size:9pt;">&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#8999;</span><span style="font-size:9pt;white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#9723;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-indent:36pt;margin:0pt 0pt 4pt 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 style="height:1pt;"><td style="vertical-align:top;width:20.36%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:16.77%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:19.75%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.55%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:21.54%;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-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr style="height:11.8pt;"><td style="vertical-align:top;width:20.36%;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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityFilerCategory" id="Narr_ObMRll7-Z0eQ6VU5cRTwog"><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';font-size:9pt;">&#8999;</span></p></td><td style="vertical-align:top;width:16.77%;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&#160;filer&#160;<span style="font-family:'Times New Roman';">&#9723;</span></p></td><td style="vertical-align:top;width:19.75%;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&#160;filer&#160;<span style="font-family:'Times New Roman';">&#9723;</span></p></td><td style="vertical-align:top;width:21.55%;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&#160;reporting&#160;company&#160;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntitySmallBusiness" id="Narr_2pQHjWS4UUmRHlgISzudnA"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9744;</span></ix:nonNumeric></p></td><td style="vertical-align:top;width:21.54%;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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityEmergingGrowthCompany" id="Narr_GYbmcUpNs0KWOGTLvw1fLA"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9744;</span></ix:nonNumeric></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:9pt;text-indent:36pt;margin:4pt 0pt 4pt 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.&#160;<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:4pt 0pt 4pt 0pt;"><span style="font-size:9pt;">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.&#160;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:IcfrAuditorAttestationFlag" id="Narr_YOClSeWXD0SKEKQi_9wT5g"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9746;</span></ix:nonNumeric><span style="font-size:9pt;white-space:pre-wrap;">  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:4pt 0pt 4pt 0pt;"><span style="font-size:9pt;">Indicate by check mark whether the registrant is a shell company (as defined in Rule&#160;12b-2 of the Act).&#160;Yes&#160;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:EntityShellCompany" id="Narr_n3o9N3NqDES1hGo-HgazxQ"><span style="font-family:'Segoe UI Symbol';font-size:9pt;">&#9744;</span></ix:nonNumeric><span style="font-size:9pt;white-space:pre-wrap;">  No&#160;</span><span style="font-family:'Times New Roman';font-size:9pt;">&#8999;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;">The aggregate market value of the voting stock held by non-affiliates of the registrant at June&#160;30, 2021 was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" format="ixt:numdotdecimal" scale="9" contextRef="As_Of_6_30_2021_kxsV_zEQA0GYvEMUk3FzKQ" decimals="-7" name="dei:EntityPublicFloat" id="Narr_oWyK1ZnwXkWTQRy1QBcFGg">2.79</ix:nonFraction>&#160;billion, based on the $78.79 last sale price of the registrant&#8217;s common stock on the New York Stock Exchange on June&#160;30, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-indent:36pt;margin:0pt 0pt 4pt 0pt;">As of February&#160;18, 2022, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" format="ixt:numdotdecimal" scale="0" contextRef="As_Of_2_18_2022_jQjmtqpUSECoDA87yriGeA" decimals="INF" name="dei:EntityCommonStockSharesOutstanding" id="Narr_0S_RGqxHnEW1-KnmBW0Vkg">35,956,839</ix:nonFraction> shares of the registrant&#8217;s common stock were outstanding (excluding treasury shares of 5,166,526).</p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt 0pt 4pt 0pt;"><b style="font-weight:bold;">DOCUMENTS INCORPORATED BY REFERENCE</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-indent:36pt;margin:0pt;">The information required by Part&#160;III (other than the required information regarding executive officers) is incorporated by reference from the registrant&#8217;s definitive proxy statement, which will be filed with the Commission not later than 120&#160;days following December&#160;31, 2021.</p><div style="padding-bottom:1.0px;border-bottom:3.0pt solid #000000;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;border-bottom:1.0pt solid #000000;margin:0pt;"><span style="font-size:4pt;visibility:hidden;">&#8203;</span></p></div><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="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:91.06%;border:0;margin:30pt 4.47% 30pt 4.47%;"></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;max-width:100%;position:relative;"><a id="_a77b0774_86d7_4f26_b3da_4fd56da52663"></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;">TABLE OF CONTENTS</b></p><a id="_ec85308e_8369_4236_a4bb_66d9eed720ac"></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:top;width:11.11%;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:top;width:82.72%;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:6.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%;"></div></div></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><a href="#PARTI_635180"><span style="font-style:normal;font-weight:normal;">Part&#160;I</span></a></p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM1Business_523507"><span style="font-style:normal;font-weight:normal;">Item&#160;1.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM1Business_523507"><span style="font-style:normal;font-weight:normal;">Business</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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:11.11%;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="#ITEM1ARiskFactors_249924"><span style="font-style:normal;font-weight:normal;">Item&#160;1A.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM1ARiskFactors_249924"><span style="font-style:normal;font-weight:normal;">Risk Factors</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">10</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM1BUnresolvedStaffComments_139610"><span style="font-style:normal;font-weight:normal;">Item&#160;1B.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM1BUnresolvedStaffComments_139610"><span style="font-style:normal;font-weight:normal;">Unresolved Staff Comments</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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:11.11%;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="#ITEM2Properties_592424"><span style="font-style:normal;font-weight:normal;">Item&#160;2.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM2Properties_592424"><span style="font-style:normal;font-weight:normal;">Properties</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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:11.11%;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="#ITEM3LegalProceedings_395131"><span style="font-style:normal;font-weight:normal;">Item&#160;3.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM3LegalProceedings_395131"><span style="font-style:normal;font-weight:normal;">Legal Proceedings</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">24</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM4MineSafetyDisclosures_231930"><span style="font-style:normal;font-weight:normal;">Item&#160;4.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM4MineSafetyDisclosures_231930"><span style="font-style:normal;font-weight:normal;">Mine Safety Disclosures</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">24</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM4AExecutiveOfficersoftheRegistrant_3"><span style="font-style:normal;font-weight:normal;">Item&#160;4A.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM4AExecutiveOfficersoftheRegistrant_3"><span style="font-style:normal;font-weight:normal;">Executive Officers of the Registrant</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">24</p></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><a href="#PARTII_73993"><span style="font-style:normal;font-weight:normal;">Part&#160;II</span></a></p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM5MarketforRegistrantsCommonEquityRel"><span style="font-style:normal;font-weight:normal;">Item&#160;5.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:14.4pt;text-indent:-14.4pt;margin:0pt;"><a href="#ITEM5MarketforRegistrantsCommonEquityRel"><span style="font-style:normal;font-weight:normal;">Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">25</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM6SelectedFinancialData_853719"><span style="font-style:normal;font-weight:normal;">Item&#160;6.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM6SelectedFinancialData_853719"><span style="font-style:normal;font-weight:normal;">Reserved</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">27</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM7ManagementsDiscussionandAnalysisofF"><span style="font-style:normal;font-weight:normal;">Item&#160;7.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM7ManagementsDiscussionandAnalysisofF"><span style="font-style:normal;font-weight:normal;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">27</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM7AQuantitativeandQualitativeDisclosu"><span style="font-style:normal;font-weight:normal;">Item&#160;7A.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM7AQuantitativeandQualitativeDisclosu"><span style="font-style:normal;font-weight:normal;">Quantitative and Qualitative Disclosures about Market Risk</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">41</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM8FinancialStatementsandSupplementary"><span style="font-style:normal;font-weight:normal;">Item&#160;8.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM8FinancialStatementsandSupplementary"><span style="font-style:normal;font-weight:normal;">Financial Statements and Supplementary Data</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">43</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM9ChangesinandDisagreementswithAccoun"><span style="font-style:normal;font-weight:normal;">Item&#160;9.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM9ChangesinandDisagreementswithAccoun"><span style="font-style:normal;font-weight:normal;">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">81</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM9AControlsandProcedures_403685"><span style="font-style:normal;font-weight:normal;">Item&#160;9A.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM9AControlsandProcedures_403685"><span style="font-style:normal;font-weight:normal;">Controls and Procedures</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">81</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM9BOtherInformation_701400"><span style="font-style:normal;font-weight:normal;">Item&#160;9B.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM9BOtherInformation_701400"><span style="font-style:normal;font-weight:normal;">Other Information</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM9CDisclosureRegardingForeignJurisdic"><span style="font-style:normal;font-weight:normal;">Item 9C.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM9CDisclosureRegardingForeignJurisdic"><span style="font-style:normal;font-weight:normal;">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><a href="#PARTIII_746927"><span style="font-style:normal;font-weight:normal;">Part&#160;III</span></a></p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM10DirectorsExecutiveOfficersandCorpo"><span style="font-style:normal;font-weight:normal;">Item&#160;10.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM10DirectorsExecutiveOfficersandCorpo"><span style="font-style:normal;font-weight:normal;">Directors, Executive Officers and Corporate Governance</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Item&#160;11.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Executive Compensation</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Item&#160;12.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:14.4pt;text-indent:-14.4pt;margin:0pt;"><a href="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Item&#160;13.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Certain Relationships and Related Transactions, and Director Independence</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Item&#160;14.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEMS111213AND14_316091"><span style="font-style:normal;font-weight:normal;">Principal Accounting Fees and Services</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><a href="#PARTIV_441083"><span style="font-style:normal;font-weight:normal;">Part&#160;IV</span></a></p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM15ExhibitsandFinancialStatementSched"><span style="font-style:normal;font-weight:normal;">Item&#160;15.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM15ExhibitsandFinancialStatementSched"><span style="font-style:normal;font-weight:normal;">Exhibits and Financial Statement Schedules</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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="#ITEM16Form10KSummary"><span style="font-style:normal;font-weight:normal;">Item&#160;16.</span></a></p></td><td style="vertical-align:top;width:82.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><a href="#ITEM16Form10KSummary"><span style="font-style:normal;font-weight:normal;">Form 10-K Summary</span></a></p></td><td style="vertical-align:bottom;width:6.16%;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;">83</p></td></tr><tr><td style="vertical-align:top;width:11.11%;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:82.72%;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:bottom;width:6.16%;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></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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">1</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.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;max-width:100%;position:relative;"><a id="_ba68be98_fbd9_4714_bc3f_73260e9f69a2"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">FORWARD-LOOKING STATEMENTS</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><i style="font-style:italic;white-space:pre-wrap;">Certain statements and information in this Annual Report on Form 10 K may constitute forward looking statements within the meaning of applicable securities laws and regulations. The words &#8220;believe,&#8221; &#8220;expect,&#8221; &#8220;anticipate,&#8221; &#8220;plan,&#8221; &#8220;intend,&#8221; &#8220;foresee,&#8221; &#8220;should,&#8221; &#8220;would,&#8221; &#8220;could,&#8221; or other similar expressions are intended to identify forward looking statements, which are generally not historic in nature. These forward-looking statements are based on the current expectations and beliefs of Comfort Systems USA, Inc. and its subsidiaries (collectively, the &#8220;Company&#8221;) concerning future developments and their effect on the Company. While the Company&#8217;s management believes that these forward looking statements are reasonable as and when made, there can be no assurance that future developments affecting the Company will be those that it anticipates, and the Company&#8217;s actual results of operations, financial condition and liquidity, and the development of the industry in which the Company operates, may differ materially from those made in or suggested by the forward-looking statements contained in this Annual Report on Form 10 K.  In addition, even if our results of operations, financial condition and liquidity, and the development of the industry in which we operate, are consistent with the forward-looking statements contained in this Annual Report on Form 10 K, those results or developments may not be indicative of our results or developments in subsequent periods. All comments concerning the Company&#8217;s expectations for future revenue and operating results are based on the Company&#8217;s forecasts for its existing operations and do not include the potential impact of any future acquisitions. The Company&#8217;s forward-looking statements involve significant risks and uncertainties (some of which are beyond the Company&#8217;s control) and assumptions that could cause actual future results to differ materially from the Company&#8217;s historical experience and its present expectations or projections. Known material factors that could cause the Company&#8217;s actual results to differ from those in the forward-looking statements are those described in Part I, &#8220;Item 1A. Risk Factors.&#8221;</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Readers are cautioned not to place undue reliance on forward-looking statements, which speak only as of the date hereof. The Company undertakes no obligation to publicly update or revise any forward-looking statements after the date they are made, whether as a result of new information, future events, or otherwise.</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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">2</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.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;max-width:100%;position:relative;"><a id="_aee48bd6_014c_43c0_b09f_fb88102a0cba"></a><a id="PARTI_635180"></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;">PART I</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;the 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><a id="ITEM1Business_523507"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 1.  </b><span style="font-style:italic;font-weight:bold;">Business</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Comfort Systems USA,&#160;Inc., a Delaware corporation, was established in 1997. We provide mechanical and electrical contracting services. Our mechanical segment principally includes heating, ventilation and air conditioning (&#8220;HVAC&#8221;), 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 mechanical, electrical and plumbing (&#8220;MEP&#8221;) systems throughout our 41 operating units with 169 locations in 126 cities throughout the United States.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We operate primarily in the commercial, industrial and institutional MEP markets and perform most of our services in industrial, healthcare, education, office, technology, retail and government facilities. Substantially all of our consolidated 2021 revenue was derived from commercial, industrial and institutional customers and multi-family residential projects. Approximately 46.3% of our revenue was attributable to installation services in newly constructed facilities and 53.7% was attributable to renovation, expansion, maintenance, repair and replacement services in existing buildings. Our consolidated 2021 revenue was derived from the following service industries:</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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.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;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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></tr><tr><td style="vertical-align:bottom;width:78.31%;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.34%;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:16.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Percentage&#160;of</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:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.31%;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;">Service&#160;Activity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;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:16.27%;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;">Revenue</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:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;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:16.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;"><span style="white-space:pre-wrap;"> 82.7</span></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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:78.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.27%;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;"> 17.3</span></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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:78.31%;background:#cceeff;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.34%;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:16.27%;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;"> 100.0</span></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;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Industry Overview</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We believe that commercial, industrial, and institutional mechanical and electrical contracting generate annual revenue in the United States of approximately $300&#160;billion. Mechanical and electrical systems are necessary to virtually all commercial, industrial and institutional buildings. Because most buildings are sealed, HVAC systems provide the primary method of circulating fresh air in such buildings. Replacing an aging building&#8217;s existing systems with modern, energy-efficient systems significantly reduces a building&#8217;s energy consumption, carbon footprint, and operating costs while improving air quality and overall system effectiveness. Older commercial, industrial and institutional facilities frequently have poor air quality and provide less comfortable environments, and older HVAC systems result in significantly higher energy consumption than do modern systems. As electrical systems age they require service and replacement, and changing building configurations and technological power load requirements lead to the need to reconfigure and improve electrical systems in buildings on a regular basis.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Many factors affect mechanical and electrical services industry growth, including but not limited to, (i)&#160;population growth, which increases the need for commercial, industrial and institutional space, (ii)&#160;an aging installed base of buildings and equipment, (iii)&#160;increasing sophistication, complexity and efficiency of mechanical and electrical systems, and (iv)&#160;growing emphasis on internal air quality, environmental sustainability and energy efficiency.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our industry can be broadly divided into two categories:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">construction of and installation in new buildings, which provided approximately 46.3% of our revenue in 2021, 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;">renovation, expansion, maintenance, repair and replacement in existing buildings, which provided the remaining 53.7% of our 2021 revenue.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Construction, Installation, Expansion and Renovation Services</i>&#8212; Construction, installation, expansion and renovation services consist of &#8220;design and build&#8221; and &#8220;plan and spec&#8221; projects. In &#8220;design and build&#8221; projects, the commercial MEP company is responsible for designing, engineering and installing a cost-effective, energy-efficient system customized to the specific needs of the building owner. Costs and other project terms are normally negotiated </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">3</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">between the building owner or its representative and the contracting company. Companies that specialize in &#8220;design and build&#8221; projects use a consultative approach with customers and tend to develop long-term relationships with building owners and developers, general contractors, architects, consulting engineers and property managers. &#8220;Plan and spec&#8221; installation refers to projects in which a third-party architect or consulting engineer designs the MEP systems and the installation project is &#8220;put out for bid.&#8221; We believe that &#8220;plan and spec&#8221; projects usually take longer to complete and frequently results in less efficient outcomes than &#8220;design and build&#8221; projects because the system design and installation process are not integrated, thus resulting in more frequent adjustments to project specifications, work requirements and schedules. Our investments in design and building information modeling enable us to collaborate with our customers to achieve reliable and energy efficient construction outcomes and to eliminate unnecessary waste.</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;">Maintenance, Repair and Replacement Services</i>&#8212;These services include maintaining, repairing, replacing, reconfiguring and monitoring previously installed systems and building automation controls. The growth and aging of the installed base of MEP and related systems, changing requirements due to increasing technology deployment, and the demand for more efficient systems and more capable building automation controls have fueled growth in these services. The increasing complexity of these systems leads many commercial, industrial and institutional building owners and property managers to outsource maintenance and repair, often through service agreements with service providers. State-of-the-art control and monitoring systems feature electronic sensors and microprocessors that are crucial to energy efficient operations. These systems require specialized training to install, maintain and repair. We believe that the work that we perform to optimize and upgrade systems and to enable wise controls helps Comfort Systems USA to optimize energy use and fundamentally reduce our nation&#8217;s carbon footprint.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Strategy</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We focus on strengthening core operating competencies, leading in sustainability, efficiency and technological improvement, and on increasing profit margins. The key objectives of our strategy are to improve profitability and generate growth in our operations, to enable sustainable and efficient building environments, to improve the productivity of our workforce, and to acquire complementary businesses. Specifically, we are currently focused on the following elements:</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;">Achieve Excellence in Core Competencies</i>&#8212;We have identified seven core competencies that we believe are critical to attracting and retaining customers, increasing operating income and cash flow, and maximizing the productivity of our skilled labor force. The seven core competencies are: (i) safety, (ii)&#160;customer service, (iii)&#160;design and build expertise, (iv)&#160;effective pre-construction processes, (v)&#160;job and cost tracking, (vi) leadership in energy efficient and sustainable design, and (vii)&#160;best-in-class servicing of existing building systems.</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;">Achieve Operating Efficiencies</i>&#8212;We think we can achieve operating efficiencies and cost savings through purchasing economies, adopting &#8220;best practices,&#8221; and focusing on efficient job management. We are continually improving the &#8220;job loop&#8221; at our locations&#8212;qualifying, estimating, pricing, and executing projects effectively and efficiently. We also use our combined spend to gain purchasing advantages on products and services such as MEP components, raw materials, services, vehicles, bonding, insurance, and employee benefits.</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;">Attract, Retain and Invest in our Employees</i>&#8212;We seek to attract and retain quality employees by providing them an enhanced career path that offers a stable income, attractive benefits packages, and excellent growth opportunities. We continually invest in training, including programs for project managers, field superintendents, service managers, service technicians, sales managers, estimators, and leadership and development of key managers and leaders. We believe that skilled labor forces in the building and services trades have become increasingly scarce and valuable, and we are increasingly focused on growing and improving our skilled labor force, including through recruitment, development, and skills training for our hourly workers.</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;">Focus on Industrial, Commercial and Institutional Markets</i>&#8212;We focus on the industrial, commercial, and institutional building markets, including construction, maintenance, repair, and replacement services. We believe that these complex markets are attractive because of their growth opportunities, large and diverse customer base, attractive margins, and potential for long-term relationships with building owners.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Leverage Resources and Capabilities</i>&#8212;We believe significant operating efficiencies can be achieved by leveraging resources among our operating locations. We have shifted certain fabrication activities to centralized locations to increase asset utilization. We opportunistically allocate our engineering, field, and supervisory labor from </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">4</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">one operation to another to use our employee base more fully, meet our customers&#8217; needs and share expertise. Our ability to share resources frequently allows us to pursue work that would otherwise not be available to us and allows us to provide a more diversified and steady deployment of our labor. We believe we have realized scale benefits from coordinated purchasing, technical innovation, insurance, benefits, bonding, and financing activities across our operations.</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;">Maintain a Diverse Customer, Geographic, and Project Base</i>&#8212;We have a distribution of revenue across end-use sectors that we believe reduces our exposure to negative developments in any given sector. We also have significant geographical diversification across all regions of the United States, again reducing our exposure to negative developments in any given region. Our distribution of revenue in 2021 by end-use sector was as follows:</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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:86.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:1pt;margin:0pt;"> <span style="visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:normal;width:2.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><td style="vertical-align:bottom;white-space:normal;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:normal;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></tr><tr><td style="vertical-align:bottom;width:86.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;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:normal;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;"><span style="white-space:pre-wrap;"> 44.1</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;margin:0pt;padding:0pt;"><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: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;"><span style="white-space:pre-wrap;"> 12.7</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;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:normal;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;"><span style="white-space:pre-wrap;"> 10.1</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;margin:0pt;padding:0pt;"><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: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;"><span style="white-space:pre-wrap;"> 13.6</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;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:normal;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;"><span style="white-space:pre-wrap;"> 5.7</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;margin:0pt;padding:0pt;"><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: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;"><span style="white-space:pre-wrap;"> 6.9</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;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:normal;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;"><span style="white-space:pre-wrap;"> 3.7</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:normal;width:2.57%;margin:0pt;padding:0pt;"><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:7.55%;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.2</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:86.42%;background:#cceeff;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:normal;width:2.57%;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:normal;width:7.55%;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;"> 100.0</span></p></td><td style="vertical-align:bottom;white-space:normal;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr></table><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:12pt 0pt 12pt 0pt;">Approximately 86.7% of our revenue is earned on a project basis for installation of systems in newly constructed or existing facilities. As of December&#160;31, 2021, we had 7,831 projects in process with an aggregate contract value of approximately $6.3&#160;billion. Our average project takes six to nine months to complete, with an average contract price of approximately $802,000. This average project size, when taken together with the approximately 13.3% of our revenue derived from maintenance and service, provides us with a broad base of work in the construction services sector. A stratification of projects in progress as of December&#160;31, 2021, by contract price, is as follows:</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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.5%;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.16%;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:7.53%;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.17%;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.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:9.33%;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.96%;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:76.5%;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.16%;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:7.53%;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.17%;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:10.65%;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.96%;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:76.5%;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.16%;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:7.53%;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.17%;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:10.65%;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.96%;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:76.5%;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.16%;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:7.53%;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.17%;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:10.65%;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.96%;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:76.5%;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.16%;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:7.53%;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.17%;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:10.65%;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.96%;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:76.5%;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 $1&#160;million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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.53%;background:#cceeff;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,864</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;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.33%;background:#cceeff;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;"> 841.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:76.5%;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;">$1&#160;million - $5&#160;million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="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.53%;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;"> 679</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="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.33%;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,527.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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:76.5%;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;">$5&#160;million - $10&#160;million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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.53%;background:#cceeff;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;"> 158</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;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.33%;background:#cceeff;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.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:76.5%;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&#160;million - $15&#160;million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="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.53%;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;"> 53</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="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.33%;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;"> 661.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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:76.5%;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 $15&#160;million</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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.53%;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;"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;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.33%;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;"> 2,167.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:76.5%;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.16%;margin:0pt;padding:0pt;"><p style="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.53%;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;"> 7,831</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;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.33%;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;"> 6,282.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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-indent:36pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Develop and Adopt Leading Technologies</i><span style="white-space:pre-wrap;">&#8212;We are improving productivity by increasing use of innovative techniques in prefabrication, project design and planning, as well as in coordination and production methods. We have invested in the refinement and adoption of prefabrication practices. We work to identify, develop, and implement new materials, products and methods that can achieve greater productivity and more efficient and sustainable outcomes. Above all, we have concluded that as technology develops in our industry the fundamental prerequisite for leadership is adopting such opportunities in the quality, accuracy, and buildability of our designs. Accordingly, we have invested in the experts, training, and internal and external knowledge transfer to ensure that we are properly scaling, achieving true buildability, and fundamentally and continuously improving our design capabilities to meet our customers&#8217; evolving requirements. Our goal is to use our scale and strategic investments to maintain a leading position in design and modeling excellence, optimize productivity and quality, and ultimately position ourselves to capitalize from ongoing or future technological developments.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Excel at Modular and Off-Site Construction</i><span style="white-space:pre-wrap;">&#8212;We believe that modular and off-site construction &#8211; the ability to build superior quality plants and systems away from the construction site &#8211; will become increasingly important in complex construction projects.  Accordingly, through our acquisitions, we have invested in that capability, and after acquisition we have further invested in improving and growing that service offering. This has led to meaningful growth in our ability to provide this expertise.  Through recent and ongoing development and acquisitions, we plan to continue to improve on our unmatched capability in mechanical off-site or modular construction. </span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">5</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.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;max-width:100%;position:relative;"><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;">Service Growth Initiative</i>&#8212;Over the last several years we have made substantial investments to expand our service and maintenance revenue by increasing the value we can offer to service and maintenance customers. We are actively concentrating managerial and sales resources on training and hiring experienced employees to sell and profitably perform service work. In many locations we have added or upgraded our capability, and we believe our investments and efforts have provided customer value and stimulated growth in all aspects of our businesses.</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;">Seek Growth through Acquisitions</i>&#8212;We believe that we can further increase our cash flow and operating income by continuing to opportunistically enter new markets or service lines through acquisition. We have dedicated a significant portion of our cash flow on an ongoing basis to seeking opportunities to acquire businesses that have strong assembled workforces, excellent historical safety performance, leading design and energy efficiency capabilities, attractive market positions, a record of consistent positive cash flow, and desirable market locations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Operations and Services Provided</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We provide a wide range of construction, renovation, expansion, maintenance, repair and replacement services for MEP and related systems in commercial, industrial and institutional properties. Our local management teams maintain responsibility for day-to-day operating decisions. Local management is augmented by regional leadership that focuses on core business competencies, regional financial performance, cooperation and coordination between locations, implementing best practices and corporate initiatives. In addition to senior management, local personnel generally include design engineers, energy efficiency and sustainability experts, sales personnel, customer service personnel, installation and service technicians, sheet metal and prefabrication technicians, estimators and administrative personnel. We have centralized certain administrative functions such as insurance, employee benefits, training, safety programs, marketing and cash management to enable our local operating management to focus on pursuing new business opportunities and improving operating efficiencies. </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;">Construction and Installation Services for New Buildings</i>&#8212;Our installation business related to newly constructed facilities, which comprised approximately 46.3% of our consolidated 2021 revenue, involves the design, engineering, integration, installation and start-up of MEP and related systems. We provide &#8220;design and build&#8221; and &#8220;plan and spec&#8221; installation services for office buildings, retail centers, manufacturing plants, healthcare, education and government facilities and other commercial, industrial and institutional facilities. In a &#8220;design and build&#8221; installation, we work with the customer to determine the needed capacity and to optimize energy efficiency of the MEP systems that best suit the proposed facility. The final design, terms, price and timing of the project are then negotiated with the customer or its representatives, after which any necessary modifications are made to the system plan. In &#8220;plan and spec&#8221; installation, we participate in a bid process to provide labor, equipment, materials and installation based on the end user&#8217;s plans and engineering specifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Once an agreement has been reached, we order the necessary materials and equipment for delivery to meet the project schedule. In many instances we fabricate ductwork, conduit and piping and assemble certain components for the system based on the mechanical drawing specifications. Finally, we install the systems at the project site, working closely with the owner or general contractor. Our average project takes six to nine months to complete, with an average contract price of approximately $802,000. We also perform larger project work, with 967 contracts in progress at December&#160;31, 2021 with contract prices in excess of $1&#160;million. Our largest project in progress at December&#160;31, 2021 had a contract price of $78.3&#160;million. 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Renovation, Expansion, Maintenance, Monitoring, Repair and Replacement Services for Existing Buildings</i>&#8212;Our renovation, expansion, maintenance, monitoring, repair and replacement services in existing buildings comprised approximately 53.7% of our consolidated 2021 revenue. Maintenance and repair services are provided either in response to service calls or under a service agreement. Service calls are coordinated by customer service representatives or dispatchers that use computer and communication technology to process orders, arrange service calls, dispatch technicians and communicate with and invoice customers. Service technicians work from service vehicles equipped with commonly used parts, supplies and tools to complete a variety of jobs. Optimal maintenance is crucial to energy efficient operations. Commercial, industrial and institutional service agreements usually have terms of one or more years, with automatic annual renewals, and frequently include thirty- to sixty-day cancellation notice periods. We also provide remote monitoring of power usage, temperature, pressure, humidity and air flow for MEP and other building systems. </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">6</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Sources of Supply</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The raw materials and components we use include MEP system components, ductwork, pipe, conduit, wire, electrical fixtures, steel, sheet metal and copper tubing and piping. These raw materials and components are generally available from a variety of domestic or foreign suppliers at competitive prices. In ordinary times, delivery times are typically short for most raw materials and standard components, but during periods of peak demand, including the ongoing pandemic, may extend one month to several months. We estimate that direct purchase of commodities and finished products comprises between 35% and 40% of our average project cost. We have procedures to reduce commodity cost exposure such as purchasing commodities early for projects, as well as selectively including time or market-based escalation and escape provisions in bids and contracts.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Chillers for large applications typically have the longest delivery time and frequently have lead times of up to six months. The major components of commercial MEP systems are compressors and chillers that are manufactured primarily by Carrier, Lennox, Daikin, Trane, and York. The major suppliers of building automation control systems are Automated Logic, Cisco, Delta, Distech Controls, Honeywell, Johnson Controls, Rockwell Automation, Schneider Electric, Siemens, Trane, and York. The major suppliers of electrical switchgear and generators are Caterpillar, Cummins, Eaton and Schneider Electric. We do not have any significant contracts guaranteeing us a supply of raw materials or components.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Cyclicality and Seasonality</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 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;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Sales and Marketing</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We have a diverse customer base, with our top customer representing 9% of consolidated 2021 revenue, and our largest customer often changes from year to year. Management and a dedicated sales force are responsible for developing and maintaining successful long-term relationships with key customers. Customers generally include building owners and developers and property managers, as well as general contractors, architects and consulting engineers. We intend to continue our emphasis on developing and maintaining long-term relationships with our customers by providing superior, high-quality service in a professional manner. We believe we can continue to leverage the diverse technical and marketing strengths at individual locations to expand the services offered in other local markets. With respect to multi-location service opportunities, we maintain a national sales force in our national accounts group.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;">Human Capital Resources</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Employees</i>&#8212;As of December&#160;31, 2021, we had approximately 13,200 employees as compared to approximately 11,100 employees as of December 31, 2020. We have collective bargaining agreements covering less than ten employees. We have not experienced and do not expect any significant strikes or work stoppages and believe our relations with employees covered by collective bargaining agreements are good.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Culture and Core Values</i><span style="white-space:pre-wrap;">&#8212;Our values define, inform, and guide the way we operate both within our Company and in the communities where we do business.  Our core values are to be safe; be honest; be respectful; be innovative; and be collaborative.  These values set the foundation for our Code of Conduct, which applies to all employees, officers, and directors of the Comfort Systems USA family of companies. The Code of Conduct is regularly reinforced to the Company&#8217;s employees and management through periodic ethics, equal opportunity employment, and anti-corruption trainings.  In addition, certain business partners, such as consultants, agents, suppliers, contractors, and other third </span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">7</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><span style="white-space:pre-wrap;">parties, serve as an extension of the Company. They are expected to follow the spirit of our Code of Conduct, all applicable laws, and any applicable contractual provisions when working on our behalf.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We believe that the way we conduct business is just as important as the business we do. Operating with integrity helps us deliver on the promises we have made to each other, our customers, and the communities where we live and work. It is also the basis for ensuring continued growth and success. Everyone at our Company shares a responsibility for doing business ethically and in a sustainable manner, preserving our good name. We ensure that this responsibility applies at every level in our organization, and everyone from corporate officers to members of our Board of Directors, to our field personnel is responsible for overseeing these efforts.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Recruiting and Training</i>&#8212;Our continued success depends, in part, on our ability to continue to attract, retain and motivate qualified engineers, service technicians, field supervisors and project managers. We believe our success in retaining qualified employees will be based on the quality of our recruiting, training, compensation, employee benefits programs and opportunities for advancement. We provide numerous training programs for management, sales, and leadership, as well as on-the-job training, technical training, apprenticeship programs, attractive benefit packages and career advancement opportunities within our Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Safety</i>&#8212;We have established comprehensive safety programs throughout our operations to ensure that all employees comply with safety standards we have established and that are established under federal, state, and local laws and regulations. Safety leadership establishes safety programs and benchmarking to improve safety across the Company. Additionally, our employment screening process seeks to determine that prospective employees have requisite skills, sufficient background references and acceptable driving records, if applicable. Our rate of incidents recordable under the standards of the Occupational Safety and Health Administration (&#8220;OSHA&#8221;) per one hundred employees per year, also known as the OSHA recordable rate, was 1.28 during 2021. This level was 42% better than the most recently published OSHA rate for our industry.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Diversity and Inclusion</i>&#8212;We are an equal opportunity employer, and we welcome and celebrate our teams&#8217; differences, experiences, and beliefs. We expect all employees to be treated with dignity and respect in an environment free from discrimination and harassment regardless of race, color, religion, sex, sexual orientation, gender identity or expression, national origin, age, disability, veteran status, genetic information, or any other protected class. We know that diversity is truly a competitive advantage that helps drive growth and innovation, and we have increasingly focused on diversity and inclusion programs within our Company. Diversity and inclusion are among our leadership team&#8217;s top priorities, with clearly outlined near-term actions to accelerate progress in outreach, representation, development, and advancement of underrepresented groups within our Company. Our Board of Directors and Board committees provide oversight on certain human capital matters, including our diversity and inclusion strategy.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;">Insurance and Litigation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">The primary insured risks in our operations are bodily injury, property damage and workers&#8217; compensation injuries. We retain the risk for workers&#8217; compensation, employer&#8217;s liability, auto liability, general liability and employee group health claims resulting from uninsured deductibles per-incident or occurrence. Because we have very large per incident deductibles, the vast majority of our claims are paid by us, so as a practical matter we self-insure the great majority of these risks. Losses up to such per-incident deductible amounts are estimated and accrued based upon known facts, historical trends and industry averages using the assistance of an actuary to project the extent of these obligations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We are subject to certain claims and 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 our 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 0pt 8pt 0pt;">We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#8217; warranties on equipment. We generally warrant labor for thirty days after servicing existing MEP systems. We do not expect warranty claims to have a material adverse effect on our financial position or results of operations.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">8</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;">Competition</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">The mechanical and electrical contracting industries are highly competitive and consist of thousands of local and regional companies. We believe that purchasing decisions in the commercial, industrial, and institutional markets are based on (i)&#160;competitive price, (ii)&#160;relationships, (iii)&#160;quality, timeliness, and reliability, (iv)&#160;tenure, financial strength, and access to bonding, (v)&#160;range of capabilities, and (vi)&#160;scale of operation. To improve our competitive position, we focus on both the consultative &#8220;design and build&#8221; installation market and the maintenance, repair, and replacement market to develop and strengthen customer relationships. In addition, we believe our ability to provide multi-location coverage and a broad range of services gives us a strategic advantage over smaller competitors who may have more limited resources and capabilities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We believe that we are larger than most of our competitors, which are generally small, owner-operated companies in a specific area. However, there are divisions of larger contracting companies, utilities and MEP equipment manufacturers that provide MEP services in some of the same service lines and geographic areas we serve. Some of these competitors and potential competitors have greater financial resources than we do to finance development opportunities and support their operations. We believe our smaller competitors generally compete with us based on price and their long-term relationships with local customers. Our larger competitors compete with us on those factors but may also provide attractive financing and comprehensive service and product packages.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Vehicles</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We operate a fleet of various owned or leased service trucks, vans and support vehicles. We believe these vehicles generally are well maintained and sufficient for our current operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Climate Change and Sustainability</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We recognize our environmental and societal responsibilities and are committed to sustainability and to improving our environmental footprint as well as operating our business in a manner that seeks to protect the health and safety of our employees and customers, as well as the public. Our focus on environmental stewardship and improving productivity drives not only our efforts to become more energy efficient but also improvements in our customers&#39; impact on climate change. Replacing an aging building&#8217;s existing systems with modern, energy-efficient systems significantly reduces a building&#8217;s energy consumption and carbon footprint while improving cost, air quality, and overall system effectiveness.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We are subject to the requirements of numerous federal, state, and local laws, regulations, and rules that promote the protection of the environment. While capital expenditures or operating costs for environmental compliance cannot be predicted with certainty, we do not currently anticipate that they will have a material effect on our capital expenditures or competitive position in the short term. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Additionally, we plan to increase our voluntary reporting through submissions to CDP (formerly the Carbon Disclosure Project) and the Task Force on Climate-related Financial Disclosures (&#8220;TCFD&#8221;). Such additional disclosures are a continuation of our efforts to adhere to voluntary reporting standards &#8211; for example, in 2021, we received a bronze medal as a result of our initial EcoVadis submission, and we published our first sustainability report (i) using the Sustainability Accounting Standard Board&#8217;s (&#8220;SASB&#8221;) standards for the Engineering and Construction Services industry, and (ii) in accordance with the Global Reporting Initiative (&#8220;GRI&#8221;) Standards: Core option.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Governmental Regulation and Environmental Matters</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our operations are subject to various federal, state and local laws and regulations, including: (i)&#160;licensing requirements applicable to engineering, construction and service technicians, (ii)&#160;building and MEP codes and zoning ordinances, (iii)&#160;regulations relating to consumer protection, including those governing residential service agreements, (iv)&#160;special bidding and procurement requirements on government projects, (v)&#160;wage and hour regulations, and (vi)&#160;regulations relating to worker safety and protection of the environment. For example, our operations are subject to the requirements of OSHA and comparable state laws directed towards protection of employees. We believe we have all required licenses to conduct our operations and are in substantial compliance with applicable regulatory requirements. If we fail to comply with applicable regulations, we could be subject to substantial fines or revocation of our operating licenses.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">9</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Many state and local regulations governing the MEP services trades require individuals to hold permits and licenses. In some cases, a required permit or license held by a single individual may be sufficient to authorize specified activities for all of our service technicians who work in the state or county that issued the permit or license. We seek to ensure that, where possible, we have two employees who hold any such permits or licenses that may be material to our operations in a particular geographic region.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our operations are subject to the federal Clean Air Act, as amended, which governs air emissions and imposes specific requirements on the use and handling of ozone-depleting refrigerants generally classified as chlorofluorocarbons (&#8220;CFCs&#8221;) or hydrochlorofluorocarbons (&#8220;HCFCs&#8221;). Clean Air Act regulations promulgated by the United States Environmental Protection Agency (&#8220;USEPA&#8221;) require the certification of service technicians involved in the service or repair of equipment containing these refrigerants and also regulate the containment and recycling of these refrigerants. These requirements have increased our training expenses and expenditures for containment and recycling equipment. The Clean Air Act is intended ultimately to eliminate the use of ozone-depleting substances such as CFCs and HCFCs in the United States and to require alternative refrigerants to be used in replacement HVAC systems. Some replacement refrigerants, already in use, and classified as hydrofluorocarbons (&#8220;HFCs&#8221;) are not ozone-depleting substances. HFCs are considered by USEPA to have high global warming potential. USEPA may at some point require the phase-out of HFCs and expand existing technician certification requirements to cover the handling of HFCs. We do not believe the existing regulations governing technician certification requirements for the handling of ozone-depleting substances or possible future regulations applicable to HFCs will materially affect our business on the whole because, although they require us to incur modest ongoing training costs, our competitors also incur such costs, and such regulations may encourage or require our customers to update their MEP systems.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Additional Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our Internet address is <i style="font-style:italic;">www.comfortsystemsusa.com</i>. We make available free of charge on or through our website our annual report on Form&#160;10-K, quarterly reports on Form&#160;10-Q, current reports on Form&#160;8-K, and amendments to those reports filed or furnished pursuant to Section&#160;13(a) or 15(d) of the Exchange Act as soon as reasonably practicable after we electronically file such material with, or furnish it to, the Securities and Exchange Commission (the &#8220;SEC&#8221;). These materials are also available at <i style="font-style:italic;">www.sec.gov</i>. Our website also includes our code of ethics, titled the &#8220;Code of Conduct,&#8221; together with other governance materials including our corporate governance standards and our Board committee charters for the audit committee, the compensation committee, and the governance and nominating committee; the executive committee, formed in 2019, operates under written grants of authority that may be amended from time to time by the Board. Printed versions of our code of ethics and our corporate governance standards may be obtained upon written request to our Corporate Compliance Officer at our headquarters address.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The content of our websites is not incorporated by reference into this annual report on Form 10-K or in any other report or document we file with the SEC, and any references to our websites are intended to be inactive textual references only.</p><a id="_8a73f028_769f_41b5_8276_562c757fc1f2"></a><a id="_Hlk534728513_0"></a><a id="ITEM1ARiskFactors_249924"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 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 0pt 12pt 0pt;"><b style="font-weight:bold;">Our business is subject to a variety of risks and uncertainties, including, but not limited to, the risks and uncertainties described below. You should carefully consider the risks described below, together with all other information included in this report, including information contained in the &#8220;Business,&#8221; &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; and &#8220;Quantitative and Qualitative Disclosures about Market Risk&#8221; sections. Our business, financial condition, results of operations or cash flows could be adversely affected by the occurrence of any of these events, which could cause actual results to differ materially from expected and historical results, and the trading price of our common stock could decline.</b></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;">Risks Related to Our Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Economic downturns in the markets in which we operate may materially and adversely affect our business because our business is dependent on levels of construction activity.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The demand for our services is dependent upon the existence of construction projects and service requirements within the markets in which we operate. Any period of economic recession, including the ongoing recession caused by the Coronavirus Disease 2019 (&#8220;COVID-19&#8221;) pandemic, affecting a market or industry in which we transact business is </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">10</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">likely to adversely impact our business. Many of the projects we work on have long lifecycles from conception to completion, and the bulk of our performance generally occurs late in a construction project&#8217;s lifecycle. We experience the results of economic trends well after an economic cycle begins, and therefore have generally continued to experience the results of an economic recession well after conditions in the general economy have improved.</p><a id="_f1f58dd7_708c_4ecb_97c0_c3c1679bed87"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The industries and markets in which we operate have always been and will continue to be vulnerable to macroeconomic downturns because they are cyclical in nature. When there is a reduction in demand, it often leads to greater price competition as well as decreased revenue and profit. The lasting effects of a recession can also increase economic instability with our vendors, subcontractors, developers, and general contractors, which can increase our liability exposure and result in us not being paid in full or at all on some projects, thus decreasing our revenue and profit. Further, to the extent some of our vendors, subcontractors, developers, or general contractors seek bankruptcy protection, such bankruptcy will likely force us to incur additional costs in attorneys&#8217; fees, as well as other professional consultants, and will result in decreased revenue and profit. Additionally, because 5.7% of our revenue for the year ended December 31, 2021 was attributable to projects in the government sector, a reduction in federal, state, or local government spending in our industries and markets could result in decreased revenue and profit for us.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Because we bear the risk of cost overruns in most of our contracts, we may experience reduced profits or, in some cases, losses under these contracts if costs increase above our estimates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our contract prices are established largely based on estimates and assumptions of our projected costs, including assumptions about: future economic conditions; prices, including commodity prices; availability of labor, including the costs of providing labor, equipment, and materials; and other factors outside our control. If our estimates or assumptions prove to be inaccurate, circumstances change in a way that renders our assumptions and estimates inaccurate or we fail to successfully execute the work, cost overruns may occur, and we could experience reduced profits or a loss for affected projects. For instance, unanticipated technical problems may arise, we could have difficulty obtaining permits or approvals, local laws, labor costs or labor conditions could change, bad weather could delay construction, raw materials prices could increase, our suppliers or subcontractors may fail to perform as expected or site conditions may be different than we expected. We are also exposed to increases in energy prices, particularly as they relate to gasoline prices. Additionally, in certain circumstances, we guarantee project completion or the achievement of certain acceptance and performance testing levels by a scheduled date. Failure to meet schedule or performance requirements typically results in additional costs to us, and in some cases, we may also create liability for consequential and liquidated damages. Performance problems for existing and future projects could cause our actual results of operations to differ materially from those we anticipate and could damage our reputation within our industry and our customer base.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our backlog is subject to unexpected adjustments and cancellations, which means that amounts included in our backlog may not result in actual revenue or translate into profits.</span></p><a id="_f98e8826_6759_4b37_ab5b_c618ebd084a9"></a><a id="_e5718525_098b_43d0_8aca_a3501865b5d1"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Backlog reflects revenue still to be recognized under contracted or committed installation and replacement project work. Our backlog as of December 31, 2021 was $2.31 billion. The predictive value of backlog information is limited to indications of general revenue direction over the near term, and we cannot guarantee that the revenue projected from our backlog will be realized or, if realized, will be profitable. Projects may remain in our backlog for an extended period of time, or project cancellations or scope adjustments may occur with respect to contracts reflected in our backlog. Such changes may adversely affect the revenues and profit we ultimately realize on these projects. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">The effects&#160;of the COVID-19 pandemic and related economic repercussions have materially affected how we and our customers, vendors, subcontractors, developers, and general contractors are operating our businesses, and the duration and extent to which this will negatively impact our future results of operations and overall financial performance remains uncertain.</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 COVID-19 pandemic has negatively impacted the global economy, disrupted consumer spending and global supply chains, and created significant volatility and disruption of financial markets. We have experienced some resulting disruptions to our business operations, and we expect the COVID-19 pandemic could have a material adverse impact on our business and financial performance. The COVID-19 pandemic and related responses are continuing to evolve and, therefore, continue to present potential risks to our business, particularly in light of new variants of the virus. The extent of the impact of the COVID-19 pandemic on our business and financial performance, including our ability to execute our near-term and long-term business strategies and initiatives in the expected time frame, depends on numerous evolving factors outside our control including: emergence of new variants of the virus; government, social, business and </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">11</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">other actions that have been and will be taken in response to the COVID-19 pandemic; any additional waves of COVID-19 infections; the efficacy of vaccines on new variants of the virus; the effect of government or customer vaccine or testing requirements on employee retention and recruitment; and the effect of the COVID-19 pandemic on short- and long-term general economic conditions.</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 been negatively impacted by the COVID-19 pandemic as a result of the shelter-in-place restrictions and work disruptions in some of our service areas creating disruptions to portions of our operations, particularly in major metropolitan markets that have been meaningfully impacted by the pandemic. We have also experienced permitting and regulatory delays attributable to the COVID-19 pandemic. In addition to these current dynamics, the COVID-19 pandemic may create or exacerbate risks related to our operations and regulatory and compliance matters, including as a result of:</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-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;">evolving governmental guidance or requirements, including travel and movement restrictions, that continue to impact our ability to perform services or complete projects in accordance with required delivery schedules, which could result in additional costs or penalties (</span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">e.g.</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">, liquidated damages);</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;">additional delays with respect to permitting and regulatory matters;</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;">additional project deferrals, delays, and cancellations and changes in customer spending patterns and strategic plans as a result of, among other things, lack of available financing for our customers&#8217; businesses or termination of, or force majeure events arising under, existing customer agreements;</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;">governmental guidance or requirements, including work-from-home policies and vaccine mandates, or potential illness that negatively impact the availability or productivity of our key personnel or a significant number of employees or cause other disruptions to our business, corporate governance or financial reporting processes;</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;">increased payment risk associated with customers experiencing financial difficulties (including bankruptcy) and an increase in disputes with customers relating to billing and payment under contracts and change orders;</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;">potential liabilities and reputational harm related to occupational health and safety matters associated with COVID-19;</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;">our inability to execute our business strategy, including with respect to certain capital investments such as acquisitions, investments and service offering expansions;</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;">potential supply chain disruptions and limitations on the ability of our suppliers, vendors and subcontractors to perform;</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;">asset impairment charges related to property and equipment, goodwill, other intangible assets, other long-lived assets and investments;</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;">additional costs associated with restructuring, severance and related matters, potential mandated increases in pay for critical infrastructure workers or other increased employment-related costs (</span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">e.g.</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">, workers&#8217; compensation insurance claims); 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;">an increase in cyber-attacks and attempted intrusions into our information technology systems as a result of, among other things, increased reliance on such systems.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>As a result of these factors, the extent of the impact of the COVID-19 pandemic on our business is highly uncertain. At this point, we cannot reasonably estimate the duration and severity of the COVID-19 pandemic, or its ultimate impact on our business, financial condition, results of operations or cash flows.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Intense competition in our industry could reduce our market share and our profit.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The markets we serve are highly fragmented and competitive. Our industry is characterized by many small companies whose activities are geographically concentrated. We compete on the basis of our technical expertise and experience, financial and operational resources, nationwide presence, industry reputation and dependability. While we believe our customers consider a number of these factors in awarding available contracts, a large portion of our work is awarded through a bid process. Consequently, price is often the principal factor in determining which contractor is selected, especially on smaller, less complex projects. Smaller competitors are sometimes able to win bids for these projects based on price alone due to their lower cost and financial return requirements. We expect competition to continue in our industry, presenting us with significant challenges in our ability to maintain strong growth rates and acceptable profit margins. We also expect increased competition from in-house service providers, because some of our customers have employees who perform service work similar to the services we provide. Vertical consolidation could also contribute to competition in our industry. If we are unable to meet these competitive challenges, we will lose market </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">12</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">share to our competitors and experience an overall reduction in our profits. In addition, our profitability would be impaired if we have to reduce our prices to remain competitive.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our recent and future acquisitions may not be successful.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We expect to continue pursuing selective acquisitions of businesses. We cannot guarantee that we will be able to identify acquisitions or that we will be able to consummate transactions on terms and conditions acceptable to us, or that acquired businesses will be profitable. Acquisitions may expose us to additional business risks different than those we have traditionally experienced. We also may encounter difficulties integrating acquired businesses and successfully managing the growth we expect to experience from these acquisitions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We may choose to finance future acquisitions with debt, equity, cash or a combination of the three. Future acquisitions could dilute earnings or disrupt the payment of a stockholder dividend. To the extent we make acquisitions, a number of risks will result, including:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">the assumption of material liabilities (including for environmental-related costs);</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">failure of due diligence to uncover situations that could result in legal exposure or to quantify the true liability exposure from known risks;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">the diversion of management&#8217;s attention from the management of daily operations to the integration of operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">difficulties in the assimilation and retention of employees, in the assimilation of different cultures and practices, in the assimilation of broad and geographically dispersed personnel and operations, and the retention of employees generally;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">the risk of additional financial and accounting challenges and complexities in areas such as tax planning, treasury management, financial reporting and internal controls; 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;">we may not be able to realize the cost savings or other financial benefits we anticipated prior to the acquisition.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The failure to successfully integrate acquisitions could have an adverse effect on our business, financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Third parties contribute significantly to our completion of many projects.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We hire third-party subcontractors to perform work and depend on third-party suppliers to provide equipment and materials necessary to complete our projects. If we are unable to retain qualified subcontractors or suppliers, or if our subcontractors or suppliers do not perform as anticipated for any reason, our execution, reputation and profitability could be harmed.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Earnings for future periods may be impacted by impairment charges for goodwill and intangible assets.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We carry a significant amount of goodwill and identifiable intangible assets on our consolidated Balance Sheets. Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred. We have determined in the past and may again determine in the future that a significant impairment has occurred in the value of our unamortized intangible assets or fixed assets, which could require us to write off a portion of our assets and could adversely affect our financial condition or our reported results of operations.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">13</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our use of the percentage-of-completion method of accounting could result in a reduction or reversal of previously recorded revenue or profits.</span></p><a id="_Hlk534728050"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A material portion of our revenue is recognized using the percentage-of-completion method of accounting, which results in our recognizing contract revenue and earnings ratably over the contract term in the proportion that our actual costs bear to our estimated contract costs. The earnings or losses recognized on individual contracts are based on estimates of contract revenue, costs and profitability. We review our estimates of contract revenue, costs and profitability on an ongoing basis. Prior to contract completion, we may adjust our estimates on one or more occasions as a result of change orders to the original contract, collection disputes with the customer on amounts invoiced or claims against the customer for increased costs incurred by us due to customer-induced delays and other factors. Contract losses are recognized in the fiscal period when the loss is determined. Contract profit estimates are also adjusted in the fiscal period in which it is determined that an adjustment is required. As a result of the requirements of the percentage-of-completion method of accounting, the possibility exists, for example, that we could have estimated and reported a profit on a contract over several periods and later determined, usually near contract completion, that all or a portion of such previously estimated and reported profits were overstated. If this occurs, the full aggregate amount of the overstatement will be reported for the period in which such determination is made, thereby eliminating all or a portion of any profits from other contracts that would have otherwise been reported in such period or even resulting in a loss being reported for such period. On a historical basis, we believe that we have made reasonably reliable estimates of the progress towards completion on our long-term contracts. However, given the uncertainties associated with these types of contracts, it is possible for actual costs to vary from estimates previously made, which may result in reductions or reversals of previously recorded revenue and profits.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">A significant portion of our business depends on our ability to provide surety bonds. Any difficulties in the financial and surety markets may adversely affect our bonding capacity and availability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In the past we have expanded, and it is possible we will continue to expand, the number and percentage of total contract dollars that require an underlying bond. Historically surety market conditions have experienced times of difficulty as a result of significant losses incurred by many surety companies and the results of macroeconomic trends outside of our control. Consequently, during times when less overall bonding capacity is available in the market, surety terms have become more expensive and more restrictive. As such, we cannot guarantee our ability to maintain a sufficient level of bonding capacity in the future, which could preclude our ability to bid for certain contracts or successfully contract with some customers. Additionally, even if we continue to be able to access bonding capacity to sufficiently bond future work, we may be required to post collateral to secure bonds, which would decrease the liquidity we would have available for other purposes. Our surety providers are under no commitment to guarantee our access to new bonds in the future; thus, our ability to access or increase bonding capacity is at the sole discretion of our surety providers. If our surety companies were to limit or eliminate our access to bonds, our alternatives would include seeking bonding capacity from other surety companies, increasing business with clients that do not require bonds and posting other forms of collateral for project performance, such as letters of credit or cash. We may be unable to secure these alternatives in a timely manner, on acceptable terms, or at all. As such, if we were to experience an interruption or reduction in the availability of bonding capacity, it is likely we would be unable to compete for or work on certain projects.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">If we experience delays and/or defaults in customer payments, we could be unable to recover all expenditures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Because of the nature of our contracts, at times we commit resources to projects prior to receiving payments from the customer in amounts sufficient to cover expenditures on projects as they are incurred. Delays in customer payments may require us to make a working capital investment. If a customer defaults in making their payments on a project to which we have devoted resources, it could have a material negative effect on our financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:9pt 0pt 0pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our business may be affected by the work environment.</span><b style="font-weight:bold;"> </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;">We may need to perform our work under a variety of conditions, including but not limited to, difficult terrain, difficult site conditions and busy urban centers where delivery of materials and availability of labor may be impacted, clean-room environments where strict procedures must be followed and sites that may have been exposed to harsh and hazardous conditions and outbreaks of infectious disease, such as the ongoing COVID-19 pandemic. Extreme weather conditions (such as storms, droughts, extreme heat or cold, wildfires and floods) may limit the availability of resources, </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">14</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">increase our costs, or may cause projects to be cancelled. To the extent climate change results in an increase in extreme weather events and adverse weather conditions, the likelihood of a negative impact on our results of operations may increase. If we are unable to manage the conditions required for certain of our jobs, including the availability of sufficient labor, adherence to environmental, health and safety or other standards, and adequately addressing harsh or hazardous conditions, our business and financial condition could be adversely affected.</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 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">We are susceptible to adverse weather conditions, which may harm our business and financial results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our business can be highly cyclical and subject to seasonal and other variations that can result in significant differences in operating results from quarter to quarter. Moreover, our business may be adversely affected by severe weather in areas where we have significant operations. Repercussions of severe weather conditions may include:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">curtailment of services;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">suspension of operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">inability to meet performance schedules in accordance with contracts and potential liability for liquidated damages;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">injuries or fatalities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">weather-related damage to our facilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">disruption of information systems;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">inability to receive machinery, equipment and materials at jobsites; 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;">loss of productivity.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Future climate change could adversely affect us.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Climate change may create physical and financial risk to our business. Physical risks from climate change could, among other things, include an increase in extreme weather events (such as floods or hurricanes), rising sea levels and limitations on water availability and quality. Such extreme weather conditions may limit the availability of resources, increasing the costs of our projects, or may cause projects to be delayed or cancelled.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:6pt 0pt 0pt 0pt;">Legislation, nationwide protocols, regulation or other restrictions related to climate change could negatively impact our operations or our customers&#8217; operations. Increasing concerns about climate change and other environmental issues may result in additional environmental regulations and restrictions. Compliance with more stringent laws or regulations, as well as more vigorous enforcement policies of the regulatory agencies could increase the costs of projects for our customers or, in some cases, prevent a project from going forward, which could in turn have an adverse effect on our financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:6pt 0pt 0pt 0pt;"><span style="font-style:italic;font-weight:bold;">Continuing worldwide political and economic uncertainties may adversely affect our revenue and profitability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;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;">The last several years have been periodically marked by political and economic concerns, including the ongoing COVID-19 pandemic, decreased consumer confidence, the lingering effects of international conflicts, tariffs, energy costs and inflation.  This instability can make it extremely difficult for our customers, our vendors and us to accurately forecast and plan future business activities, and could cause constrained spending on our services, delays and a lengthening of our business development efforts, the demand for more favorable pricing or other terms, and/or difficulty in collection of our accounts receivable. Our government clients may face budget deficits that prohibit them from funding proposed and existing projects. Further, ongoing economic instability in the global markets, including from the ongoing COVID-19 pandemic, could limit our ability to access the capital markets at a time when we would like, or need, to raise capital, which could have an impact on our ability to react to changing business conditions or new opportunities. If economic conditions remain uncertain or weaken, or government spending is reduced, our revenue and profitability could be adversely affected.</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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">15</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.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;max-width:100%;position:relative;"><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;">Risks Related to Our Operations</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">If we are unable to attract and retain qualified managers and employees, we will be unable to operate efficiently, which could reduce our profitability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our business is labor intensive, and many of our operations experience a high rate of employee turnover. At times of low unemployment rates in the United States, it is typically more difficult for us to find qualified personnel at low cost in some geographic areas where we operate. Additionally, our business is managed by a small number of key executive and operational officers. We may be unable to hire and retain the sufficient skilled labor force necessary to operate efficiently and to support our growth strategy. Our labor expenses may increase as a result of a shortage in the supply of skilled personnel. Labor shortages, increased labor costs or the loss of key personnel could reduce our profitability and negatively impact our business. Further, our relationships with some customers could suffer if we are unable to retain the employees with whom those customers primarily work and have established relationships.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">  Future growth could also impose significant additional responsibilities on members of our senior management, including the need to recruit and integrate new senior level managers and executives. To the extent that we are unable to manage our growth effectively, or are unable to attract and retain additional qualified management, we may not be able to expand our operations or successfully execute our business plan.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">We are a decentralized company and place significant decision making powers with our subsidiaries&#8217; management, which presents certain risks.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We believe that our practice of placing significant decision making powers with local management is important to our successful growth and allows us to be responsive to opportunities and to our customers&#8217; needs. However, this practice presents certain risks, including the risk that we may be slower or less effective in our attempts to identify or react to problems affecting an important business than we would under a more centralized structure or that we would be slower to identify a misalignment between a subsidiary&#8217;s and the Company&#8217;s overall business strategy. Further, if a subsidiary location fails to follow the Company&#8217;s compliance policies, we could be made party to a contract, arrangement or situation that requires the assumption of large liabilities or has less advantageous terms than is typically found in the market.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Information technology system failures, network disruptions or cybersecurity breaches could adversely affect our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We use and rely significantly on sophisticated information technology systems, networks, and infrastructure in conducting our day to day operations, providing services to certain customers and protecting sensitive Company information. In addition, we also rely on third-party software and information technology for certain of our critical accounting, project management and financial information systems. We also collect and retain information about our customers, stockholders, vendors and employees, with the expectation by such third parties being that we will adequately protect such information.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Information technology system failures, including suppliers&#8217; or vendors&#8217; system failures, could disrupt our operations by causing transaction errors, processing inefficiencies, the loss of customers, other business disruptions or the loss of employee or other third-party personal information. We have in the past experienced system interruptions and delays and expect that such interruptions and delays may occur in the future, given the increasing diversity and sophistication of cybersecurity threats. In addition, our systems, networks and infrastructure could be damaged or interrupted by natural disasters, power loss, telecommunications failures, intentional or inadvertent user misuse or error, failures of information technology solutions, computer viruses, malicious code, ransomware attacks and acts of terrorism. We may also be subject to physical or electronic security breaches, including breaches by computer hackers or cyber-terrorists or unauthorized access to or disclosure of our or our customers&#8217; data. These events could impact our customers, employees and reputation and lead to financial losses from remediation actions, loss of business or access to our business data, potential liability or an increase in expenses, all of which may have a material adverse effect on our business. Similar risks could affect our customers and vendors, indirectly affecting us.</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>While we have security, internal control and technology measures in place to protect our systems and networks, these measures could fail as a result of a cyber-attack, other third-party action, employee error, malfeasance or other security failure. In the ordinary course of business, we have been targeted by malicious cyber-attacks. In April 2019, for </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">16</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">example, our information technology infrastructure was impacted by a ransomware attack virus, which caused a substantial majority of our operating locations to experience loss of access to certain data and outages affecting systems including accounting, payroll, billing, job report and management and other software environments. These disruptions created challenges in key back office functions that required workarounds and alternative procedures. Because the techniques used to obtain unauthorized access or sabotage systems change frequently and generally are not identified until they are launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures. As a result, we may be required to expend significant resources to protect against the threat of system disruptions and security breaches or to alleviate problems caused by these disruptions and breaches. Any of these events could damage our reputation and, while the April 2019 incident did not have such effects, have a material adverse effect on our business, results of operations, financial condition and cash flows. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>In addition, current and future laws and regulations governing data privacy and the unauthorized disclosure of confidential information may pose complex compliance challenges and result in additional costs. A failure to comply with such laws and regulations could result in penalties or fines, legal liabilities or reputational harm. The continuing and evolving threat of cyber-attacks has also resulted in increased regulatory focus on risk management and prevention. New cyber-related regulations or other requirements could require significant additional resources and cause us to incur significant costs, which could have an adverse effect on our results of operations and cash flows.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We regularly evaluate the need to upgrade or replace our systems and network infrastructure to protect our information technology environment, to stay current on vendor supported products and to improve the efficiency and scope of our systems and information technology capabilities. The implementation of new systems and information technology could adversely impact our operations by requiring substantial capital expenditures, diverting management&#8217;s attention, or causing delays or difficulties in transitioning to new systems. In addition, our systems implementations may not result in productivity improvements at the levels anticipated. Systems implementation disruption and any other information technology disruption, if not anticipated and appropriately mitigated, could have an adverse effect on our business.<span style="font-style:italic;font-weight:bold;"> </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our insurance policies against many potential liabilities require high deductibles, and our risk management policies and procedures may leave us exposed to unidentified or unanticipated risks. Additionally, difficulties in the insurance markets may adversely affect our ability to obtain necessary insurance.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We insure various general liability, workers&#8217; compensation, property and auto risks as well as other risks through a variety of direct insurance policies and a captive insurance company that are reinsured for risks above certain deductibles and retentions. All of our insurance policies and programs are subject to high deductibles and retentions; as such, we are, in effect, self-insured for substantially all of our typical claims. We hire an actuary to determine any liabilities for unpaid claims and associated expenses for the three major lines of coverage (workers&#8217; compensation, general liability and auto liability). The determination of these claims and expenses and the appropriateness of the estimated liability are reviewed and updated quarterly. However, insurance liabilities are difficult to assess and estimate due to the many relevant factors, the effects of which are often unknown, including the severity of an injury, the determination of our liability in proportion to other parties, the number of incidents that have occurred but are not reported and the effectiveness of our safety program. Our accruals are based on known facts, historical trends (both internal trends and industry averages) and our reasonable estimate of our future expenses. We believe our accruals are adequate. However, our risk management strategies and techniques may not be fully effective in mitigating our risk exposure in all market environments or against all types of risk. If any of the variety of instruments, processes or strategies we use to manage our exposure to various types of risk are not effective, we may incur losses that are not covered by our insurance policies or that exceed our accruals or coverage limits.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Additionally, we typically are contractually required to provide proof of insurance for projects on which we work. Historically, insurance market conditions become more difficult for insurance consumers during periods when insurance companies suffer significant investment losses as well as casualty losses. Consequently, it is possible that insurance markets will become more expensive and restrictive. Also, our prior casualty loss history might adversely affect our ability to procure insurance within commercially reasonable ranges. As such, we may not be able to maintain commercially reasonable levels of insurance coverage in the future, which could preclude our ability to work on many projects and increase our overall risk exposure. Our insurance providers are under no commitment to renew our existing insurance policies in the future; therefore, our ability to obtain necessary levels or kinds of insurance coverage is subject to market forces outside our control. If we were unable to obtain necessary levels of insurance, it is likely we would be unable to compete for or work on most projects.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">17</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Failure to remain in compliance with covenants under our credit agreement, service our indebtedness, or fund our other liquidity needs could adversely impact our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our credit agreement and related restrictive and financial covenants are more fully described in Note&#160;9 of &#8220;Notes to the Consolidated Financial Statements.&#8221; Our failure to comply with any of these covenants under the credit agreement, or to pay principal, interest or other amounts when due thereunder, would constitute an event of default under the credit agreement. Default under our credit agreement could result in (1)&#160;us no longer being entitled to borrow under the agreement; (2)&#160;termination of the agreement; (3)&#160;acceleration of the maturity of outstanding indebtedness under the agreement; and/or (4)&#160;foreclosure on any collateral securing the obligations under the agreement. If we are unable to service our debt obligations or fund our other liquidity needs, we could be forced to curtail our operations, reorganize our capital structure (including through bankruptcy proceedings) or liquidate some or all of our assets in a manner that could cause holders of our securities to experience a partial or total loss of their investment in us. In addition, the U.K Financial Conduct Authority, which regulates LIBOR, has announced that, after specified dates, LIBOR settings will cease to be provided by any administrator or will no longer be representative of the underlying market and economic reality that such settings are intended to measure. Those dates are: (i) June 30, 2023, in the case of the principal U.S. dollar LIBOR tenors (overnight and one, three, six and 12 months); and (ii) December 31, 2021, in all other cases (i.e., one week and two month U.S. dollar LIBOR and all tenors of non-U.S. dollar LIBOR). Accordingly, many existing LIBOR obligations will transition to another benchmark after June 30, 2023 or, in some cases, after December 31, 2021. However, those transition dates may occur earlier. The U. K. Financial Conduct Authority&#160;and certain U.S. regulators have encouraged market participants to cease entering into new contracts using U.S. dollar LIBOR by December 31, 2021, despite expected publication of U.S. dollar LIBOR through June 30, 2023. Regulators have also stated that, for certain purposes, market participants should transition away from U.S. dollar LIBOR sooner. It is not possible to know what the effect of any such changes in views or alternatives may have on the financial markets for LIBOR-linked financial instruments. Similar developments have occurred with respect to other IBORs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our inability to properly utilize our workforce could have a negative impact on our profitability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The extent to which we utilize our workforce affects our profitability. Underutilizing our workforce could result in lower gross margins and, consequently, a decrease in short-term profitability. On the other hand, overutilization of our workforce could negatively impact safety, employee satisfaction and project execution, leading to a potential decline in future project awards. The utilization of our workforce is impacted by numerous factors, including:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">our estimate of headcount requirements and our ability to manage attrition;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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;">efficiency in scheduling projects and our ability to minimize downtime between project assignments; 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;">productivity.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">If we do not effectively manage the size and cost of our operations, our existing infrastructure may become either strained or over-burdensome, and we may be unable to increase revenue growth.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The growth that we have experienced in the past, and that we may experience in the future, may provide challenges to our organization, requiring us to expand our personnel and our operations. Future growth may strain our infrastructure, operations and other managerial and operating resources. We have also experienced in the past severe constriction in the markets in which we operate and, as a result, in our operating requirements. Failing to maintain the appropriate cost structure during a particular economic cycle may result in our incurring costs that affect our profitability. If our business resources become strained or over-burdensome, our earnings may be adversely affected, and we may be unable to increase revenue growth. Further, we may undertake contractual commitments that exceed our labor, managerial or other resources, which could also adversely affect our earnings and our ability to increase revenue growth.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Increases and uncertainty in our health insurance costs could adversely impact our results of operations and cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The costs of employee health insurance have been increasing in recent years due to rising health care costs, legislative changes, and general economic conditions. Additionally, we may incur additional costs as a result of the Patient Protection and Affordable Care Act (the &#8220;Affordable Care Act&#8221;) that was signed into law in March 2010. Future </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">18</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">legislation could also have an impact on our business. The status of the Affordable Care Act, any amendment, repeal or replacement thereof, is currently uncertain. For example, in December 2019, the United States Court of Appeals for the Fifth Circuit struck down a central provision of the Affordable Care Act, ruling that the requirement that people have health insurance was unconstitutional, sending the case back to a federal district judge in Texas to determine which of the law&#8217;s many parts could survive without the mandate. On March 2, 2020, the United States Supreme Court granted certiorari to review this case, and on June 17, 2021 the U.S. Supreme Court dismissed a challenge on procedural grounds that argued Affordable Care Act is unconstitutional in its entirety because the &#8220;individual mandate&#8221; was repealed by Congress. The Affordable Care Act will remain in effect in its current form; however, we continue to evaluate the effect that the Affordable Care Act has on our business.</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;">Regulatory and Legal Risks</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Actual and potential claims, lawsuits and proceedings could ultimately reduce our profitability and liquidity and weaken our financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We are likely to continue to be named as a defendant in legal proceedings claiming damages from us in connection with the operation of our business. These actions and proceedings may involve claims for, among other things, compensation for alleged personal injury, workers&#8217; compensation, employment discrimination, breach of contract or property damage. In addition, we may be subject to class action lawsuits involving allegations of violations of the Fair Labor Standards Act and state wage and hour laws. Due to the inherent uncertainties of litigation, we cannot accurately predict the ultimate outcome of any such actions or proceedings. We also are, and are likely to continue to be, from time to time a plaintiff in legal proceedings against customers, in which we seek to recover payment of contractual amounts we are owed as well as claims for increased costs we incur. When appropriate, we establish provisions against possible exposures, and we adjust these provisions from time to time according to ongoing exposure. If our assumptions and estimates related to these exposures prove to be inadequate or inaccurate, we could experience a reduction in our profitability and liquidity and a weakening of our financial condition. In addition, claims, lawsuits and proceedings may harm our reputation or divert management resources away from operating our business.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We typically warrant the services we provide, guaranteeing the work performed against defects in workmanship and the material we supply. Historically, warranty claims have not been material as our customers evaluate much of the work we perform for defects shortly after work is completed. However, if warranty claims occur, we could be required to repair or replace warrantied items at our cost. In addition, our customers may elect to repair or replace the warrantied item by using the services of another provider and require us to pay for the cost of the repair or replacement. Costs incurred as a result of warranty claims could adversely affect our operating results and financial condition.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Misconduct by our employees, subcontractors or partners or our overall failure to comply with laws or regulations could harm our reputation, damage our relationships with customers, reduce our revenue and profits, and subject us to criminal and civil enforcement actions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Misconduct, fraud, non-compliance with applicable laws and regulations, or other improper activities by one or more of our employees, directors, executive officers, subcontractors or partners could have a significant negative impact on our business and reputation. Examples of such misconduct include employee or subcontractor theft, personal misconduct and failure to comply with safety standards, including regulatory, company or site-specific COVID-19 safety protocols, laws and regulations, customer requirements, environmental laws and any other applicable laws or regulations. While we take precautions to prevent and detect these activities, such precautions may not be effective and are subject to inherent limitations, including human error and fraud. Our failure to comply with applicable laws or regulations or acts of misconduct could subject us to fines and penalties, harm our reputation, lead to loss of the services of employees or members of management, damage our relationships with customers, reduce our revenue and profits and subject us to criminal and civil enforcement actions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-style:italic;font-weight:bold;">We have subsidiary operations through the United States and are exposed to multiple state and local regulations, as well as federal laws and requirements applicable to government contractors. Changes in law, regulations or requirements, or a material failure of any of our subsidiaries or us to comply with any of them, could increase our costs and have other negative impacts on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our 169 locations are located in 27 states, which exposes us to a variety of different state and local laws and regulations, particularly those pertaining to contractor licensing requirements. These laws and regulations govern many </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">19</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;">aspects of our business, and there are often different standards and requirements in different locations. In addition, our subsidiaries that perform work for federal government entities are subject to additional federal laws and regulatory and contractual requirements. Changes in any of these laws, or any of our subsidiaries&#8217; material failure to comply with them, can adversely impact our operations by, among other things, increasing costs, distracting management&#8217;s time and attention from other items, and harming our reputation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-style:italic;font-weight:bold;">As government contractors, our subsidiaries are subject to a number of rules and regulations, and their contracts with government entities are subject to audit. Violations of the applicable rules and regulations could result in a subsidiary being barred from future government contracts.</span></p><a id="_c0b1ebbf_ea65_4fc9_9774_4cb3b58b1128"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">Government contractors must comply with many regulations and other requirements that relate to the award, administration and performance of government contracts. A violation of these laws and regulations could result in imposition of fines and penalties, the termination of a government contract or debarment from bidding on government contracts in the future. Further, despite our decentralized nature, a violation at one of our locations could impact other locations&#8217; ability to bid on and perform government contracts. Additionally, because of our decentralized nature, we face risks in maintaining compliance with all local, state and federal government contracting requirements. Because 5.7% of our revenue for the year ended December 31, 2021 was attributable to projects in the government sector, prohibitions against bidding on future government contracts could have an adverse effect on our financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-style:italic;font-weight:bold;">Past and future environmental, safety and health regulations could impose significant additional costs on us that could reduce our profits.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">HVAC systems are subject to various environmental statutes and regulations, including the Clean Air Act and those regulating the production, servicing and disposal of certain ozone-depleting refrigerants used in HVAC systems. There can be no assurance that the regulatory environment in which we operate will not change significantly in the future. Various local, state and federal laws and regulations impose licensing standards on technicians who install and service HVAC systems. Additional laws, regulations and standards apply to contractors who perform work that is being funded by public money, particularly federal public funding. Our failure to comply with these laws and regulations could subject us to substantial fines, the loss of our licenses or potentially debarment from future publicly funded work. It is impossible to predict the full nature and effect of judicial, legislative or regulatory developments relating to health and safety regulations and environmental protection regulations applicable to our operations. Additionally, industries in which our customers or potential customers operate may be affected by new or changing environmental, safety, health or other regulatory requirements, leading to decreased demand for our services and potentially impacting our business, financial condition, results of operations, cash flows and ability to grow.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-style:italic;font-weight:bold;">Unsatisfactory safety performance may subject us to penalties, affect customer relationships, result in higher operating costs, negatively impact employee morale and result in higher employee turnover.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">Our projects are conducted at a variety of sites including construction sites and industrial facilities. Each location is subject to numerous safety risks, including electrocutions, fires, explosions, mechanical failures, weather-related incidents, transportation accidents, damage to equipment and, with respect to indoor sites, an increased risk of COVID-19 outbreaks. These hazards can cause personal injury and loss of life, severe damage to or destruction of property and equipment and other consequential damages and could lead to suspension of operations, large damage claims and, in extreme cases, criminal liability. While we have taken what we believe are appropriate precautions to minimize safety risks, we have experienced serious accidents, including fatalities, in the past and may experience additional accidents in the future. Serious accidents may subject us to penalties, civil litigation or criminal prosecution. Claims for damages to property or persons, including claims for bodily injury or loss of life, could result in significant costs and liabilities, which could adversely affect our financial condition and results of operations. Poor safety performance could also jeopardize our relationships with our customers, negatively impact employee morale and harm our reputation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Changes in United States trade policy, including the imposition of tariffs and the resulting consequences, may have a material adverse impact on our business and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-indent:36pt;margin:0pt;">As a result of policy changes or shifting proposals by the U.S. government, there may be greater restrictions and economic disincentives on international trade. For example, the U.S. government has pursued a new approach to trade policy, including renegotiating or terminating certain existing bilateral or multi-lateral trade agreements. It has also </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">20</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt;">imposed tariffs on certain foreign goods and has raised the possibility of imposing significant, additional tariff increases or expanding the tariffs to capture other types of goods. These tariffs and other changes in U.S. trade policy have in the past and could continue to trigger retaliatory actions by affected countries, and certain foreign governments have instituted or are considering imposing retaliatory measures on certain U.S. goods. We, our suppliers and our customers import certain raw materials, components and other products from foreign suppliers. As such, the adoption and expansion of trade restrictions, the occurrence of a trade war, or other governmental action related to tariffs or trade agreements or policies has the potential to adversely impact demand for our products, our costs, our customers, our suppliers, and the United States economy, which in turn could have an adverse effect on our business, financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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-style:italic;font-weight:bold;">Tax matters, including changes in corporate tax laws and disagreements with taxing authorities, could impact our results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We conduct business across the United States and file income taxes in various tax jurisdictions. Our effective tax rates could be affected by many factors, some of which are outside of our control, including changes in tax laws and regulations in the various tax jurisdictions in which we file income taxes. For instance, the Tax Cuts and Jobs Act was enacted into law in December 2017.<span style="background:#ffffff;"> While certain portions of the Tax Cuts and Jobs Act seem to have had a positive impact on the Company&#8217;s results of operations, the overall impact of the Tax Cuts and Jobs Act is uncertain and our business and financial condition could be adversely affected. Furthermore, to the extent that certain of our customers are negatively affected by the Tax Cuts and Jobs Act and/or any uncertainty around its implementation or enforcement, they may reduce spending and defer, delay or cancel projects or contracts. Reduced government revenue resulting from changes to tax law may also lead to reduced government spending, which may negatively impact our government contracting business. It is also unknown if and to what extent various states will conform to the changes enacted by the Tax Cuts and Jobs Act.&#160;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">I</span>ssues relating to tax audits or examinations and any related interest or penalties and uncertainty in obtaining deductions or credits claimed in various jurisdictions could also impact our effective tax rates. Our results of operations are reported based on our determination of the amount of taxes we owe in various tax jurisdictions. Significant judgment is required in determining our provision for income taxes and our determination of tax liability is always subject to review or examination by tax authorities in applicable tax jurisdictions. An adverse outcome of such a review of examination could adversely affect our operating results and financial condition. Further, the results of tax examinations and audits could have a negative impact on our financial results and cash flows where the results differ from the liabilities recorded in our financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Risks Related to Our Common Stock</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;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;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our common stock, which is listed on the New York Stock Exchange, has from time to time experienced significant price and volume fluctuations. These fluctuations are likely to continue in the future, and our stockholders may suffer losses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The market price of our common stock may change significantly in response to various factors and events beyond our control. A variety of events may cause the market price of our common stock to fluctuate significantly, including the following: (i)&#160;the risk factors described in this Annual Report on Form&#160;10-K; (ii)&#160;a shortfall in operating revenue or net income from that expected by securities analysts and investors; (iii)&#160;quarterly fluctuations in our operating results; (iv)&#160;changes in securities analysts&#8217; estimates of our financial performance or that of our competitors or companies in our industry generally; (v)&#160;general conditions in our customers&#8217; industries, including as a result of the ongoing COVID-19 pandemic; (vi)&#160;general conditions in the securities markets; (vii)&#160;our announcements of significant contracts, milestones and acquisitions; (viii)&#160;our relationship with other companies; (ix)&#160;our investors&#8217; view of the sectors and markets in which we operate; and (x)&#160;additions or departures of key personnel. Some companies that have volatile market prices for their securities have been subject to security class action suits filed against them. If a suit were to be filed against us, regardless of the outcome, it could result in substantial costs and a diversion of our management&#8217;s attention and resources. This could have a material adverse effect on our business, results of operations and financial condition.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">21</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Future sales of our common stock may depress our stock price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Sales of a substantial number of shares of our common stock in the public market or otherwise, either by us, a member of management or a major stockholder, or the perception that these sales could occur, could depress the market price of our common stock and impair our ability to raise capital through the sale of additional equity securities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Our charter contains certain anti-takeover provisions that may inhibit or delay a change in control.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our certificate of incorporation authorizes our Board of Directors to issue, without stockholder approval, one or more series of preferred stock having such preferences, powers and relative, participating, optional and other rights (including preferences over the common stock respecting dividends and distributions and voting rights) as the Board of Directors may determine. The issuance of this &#8220;blank-check&#8221; preferred stock could render more difficult or discourage an attempt to obtain control by means of a tender offer, merger, proxy contest or otherwise. Additionally, certain provisions of the Delaware General Corporation Law or even certain provisions of our credit agreement may also discourage takeover attempts that have not been approved by the Board of Directors.</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;">General Risk Factors</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-style:italic;font-weight:bold;">Failure or circumvention of our disclosure controls and procedures or internal controls over financial reporting could seriously harm our financial condition, results of operations, and our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">We plan to continue to maintain and strengthen internal controls and procedures to enhance the effectiveness of our disclosure controls and internal controls over financial reporting. Any system of controls, however well designed and operated, is based in part on certain assumptions and can provide only reasonable, and not absolute, assurances that the objectives of the system are met. Any failure of our disclosure controls and procedures or internal controls over financial reporting could harm our financial condition and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Force majeure events, including natural disasters, outbreaks of infectious disease, such as COVID-19, and terrorists&#8217; actions, could negatively impact our business, which may affect our financial condition, results of operations or cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Force majeure or extraordinary events beyond the control of the contracting parties, such as natural and man-made disasters, as well as outbreaks of infectious disease (<i style="font-style:italic;">e.g.</i>, COVID-19) and terrorist actions, could negatively impact us. We typically negotiate contract language where we are granted certain relief from force majeure events in private client contracts and review and attempt to mitigate force majeure events in both public and private client contracts. We remain obligated to perform our services after most extraordinary events subject to relief that may be available to us pursuant to a force majeure clause. If we are not able to react quickly to force majeure events, our operations may be affected significantly, which would have a negative impact on our financial position, results of operations, cash flows and liquidity and could also negatively affect our reputation in the marketplace.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Rising inflation and/or interest rates could have an adverse effect on our business, financial condition and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Economic factors, including inflation and fluctuations in interest rates, could have a negative impact on our business. If our costs were to become subject to significant inflationary pressures or interest rate increases, we may not be able to fully offset such higher costs through price increases. Our inability or failure to do so could harm our financial position and results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Deliberate, malicious acts, including terrorism and sabotage, could damage our facilities, disrupt our operations or injure employees, contractors, customers or the public and result in liability to us.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Intentional acts of destruction could damage or destroy our facilities, reducing our operational production capacity and potentially requiring us to repair or replace our facilities at substantial cost. Additionally, employees, contractors and the public could suffer substantial physical injury from acts of terrorism for which we could be liable. Governmental authorities may also impose security or other requirements that could make our operations more difficult or costly. The consequences of any such actions could adversely affect our financial condition and results of operations.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">22</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">We are required to assess and report on our internal controls each year. Findings of inadequate internal controls could reduce investor confidence in the reliability of our financial information.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As directed by the Sarbanes-Oxley Act, the SEC adopted rules generally requiring public companies, including us, to include in their annual reports on Form&#160;10-K a report of management that contains an assessment by management of the effectiveness of our internal control over financial reporting. In addition, the independent registered public accounting firm auditing our financial statements must report on the effectiveness of our internal control over financial reporting. A company&#8217;s internal control over financial reporting is a process designed by, or under the supervision of, the company&#8217;s principal executive and principal financial officers, or persons performing similar functions, and effected by the company&#8217;s board of directors, management, and other personnel 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. A company&#8217;s internal control over financial reporting includes those policies and procedures that (1)&#160;pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2)&#160;provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles and that receipts and expenditures of the company are being made only in accordance with authorizations of management and records of the company; and (3)&#160;provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#8217;s assets that could have a material effect on the financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We may discover in the future that we have deficiencies in the design and operation of our internal controls. In addition, we may acquire companies whose internal controls have design or operational deficiencies, which could impair our ability to integrate those companies into our internal control environment. If any of the deficiencies in our internal control, either by itself or in combination with other deficiencies, becomes a &#8220;material weakness&#8221;, such that there is a reasonable possibility that a material misstatement of the annual or interim financial statements will not be prevented or detected on a timely basis, we may be unable to conclude that we have effective internal control over financial reporting. In such event, investors could lose confidence in the reliability of our financial statements, which may significantly harm our business and cause our stock price to decline. In addition, the failure to maintain effective internal controls could also result in unauthorized transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Changes in accounting rules and regulations could adversely affect our financial results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Accounting rules and regulations are subject to review and interpretation by the Financial Accounting Standards Board (the &#8220;FASB&#8221;), the SEC and various other governing bodies. A change in U.S. GAAP could have a significant effect on our reported financial results. Additionally, the adoption of new or revised accounting principles could require that we make significant changes to our systems, processes and controls. We cannot predict the effect of future changes to accounting principles, which could have a significant effect on our reported financial results and/or our results of operations, cash flows and liquidity.</p><a id="_f5ec9af2_b5b9_456a_9500_0c1bbd3c6436"></a><a id="ITEM1BUnresolvedStaffComments_139610"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 1B.  </b><span style="font-style:italic;font-weight:bold;">Unresolved Staff Comments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">None.</p><a id="_230ead9c_6986_45f3_860f_b6f386c66820"></a><a id="ITEM2Properties_592424"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 2.  </b><span style="font-style:italic;font-weight:bold;">Properties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December&#160;31, 2021, we owned 15 properties. Other than these owned properties, we lease the real property and buildings from which we operate. Our facilities are located in 27 states and consist of offices, shops and fabrication, maintenance and warehouse facilities. Generally, leases range from three to ten years and are on terms we believe to be commercially reasonable. A majority of these premises are leased from individuals or entities with whom we have no other business relationship. In certain instances, these leases are with current or former employees. To the extent we renew, enter into leases or otherwise change leases with current or former employees, we enter into such agreements on terms that reflect a fair market valuation for the properties. Leased premises range in size from approximately 1,000 square feet to 110,000 square feet. To maximize available capital, we generally intend to continue to lease our properties, but may consider further purchases of property where we believe ownership would be more economical. We believe that our facilities are sufficient for our current needs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We lease our executive and administrative offices in Houston, Texas.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">23</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.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;max-width:100%;position:relative;"><a id="_38a5c88d_adc3_4bf5_a5aa_f7ce8569f85d"></a><a id="ITEM3LegalProceedings_395131"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 3.  </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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable.  The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent.  We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered.  We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months.  As of December 31, 2021, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; 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.</span></p><a id="_e0b64f56_a932_428c_bd9e_d421e813a589"></a><a id="ITEM4MineSafetyDisclosures_231930"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 4.  </b><span style="font-style:italic;font-weight:bold;">Mine Safety Disclosures</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Not applicable.</p><a id="_b196024d_d6a9_4b48_b280_8346e6f9bac9"></a><a id="_Hlk534728353"></a><a id="ITEM4AExecutiveOfficersoftheRegistrant_3"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 4A.  </b><span style="font-style:italic;font-weight:bold;">Executive Officers of the Registrant</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Executive officers are appointed by our Board of Directors and hold office until their successors are elected and duly qualified. The following persons serve as executive officers of the Company.</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;">Brian E. Lane,</i> age 64, has served as our Chief Executive Officer and President since December 2011 and as a director since November 2010. Mr.&#160;Lane served as our President and Chief Operating Officer from March 2010 until December 2011. Mr.&#160;Lane joined the Company in October 2003 and served as Vice President and then Senior Vice President for Region One of the Company until he was named Executive Vice President and Chief Operating Officer in January 2009. Prior to joining the Company, Mr.&#160;Lane spent fifteen years at Halliburton, the global service and equipment company devoted to energy, industrial, and government customers. During his tenure at Halliburton, he held various positions in business development, strategy, and project initiatives. He departed as the Regional Director of Europe and Africa. Mr.&#160;Lane&#8217;s additional experience includes serving as a Regional Director of Capstone Turbine Corporation, a distributed power manufacturer. He also was a Vice President of Kvaerner, an international engineering and construction company where he focused on the chemical industry. Mr. Lane holds a Bachelor of Science in Chemistry from the University of Notre Dame and a Master of Business Administration from Boston College.</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;">William George,</i> age 57, has served as our Executive Vice President and Chief Financial Officer since May 2005, was our Senior Vice President, General Counsel and Secretary from May 1998 to May&#160;2005, and was our Vice President, General Counsel and Secretary from March 1997 to April 1998. Since October 2011, Mr. George has also served as Regional Vice President. Mr. George was a member of our founding management team in connection with our formation in 1997. From October 1995 to February 1997, Mr.&#160;George was Vice President and General Counsel of American Medical Response,&#160;Inc., a publicly-traded healthcare transportation company. From September 1992 to September 1995, Mr.&#160;George practiced corporate and antitrust law at Ropes&#160;&amp; Gray, a Boston, Massachusetts, law firm. Mr. George holds a Bachelor of Science in Economics from Brigham Young University and a Juris Doctorate from Harvard Law School.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">24</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.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;max-width:100%;position:relative;"><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;">Julie S. Shaeff,</i> age 56, has served as our Senior Vice President and Chief Accounting Officer since May 2005, was our Vice President and Corporate Controller from March 2002 to May 2005, and was our Assistant Corporate Controller from September 1999 to February 2002. From 1996 to August 1999, Ms.&#160;Shaeff was Financial Accounting Manager&#8212;Corporate Controllers Group for Browning-Ferris Industries,&#160;Inc., a publicly-traded waste services company. From 1987 to 1995, she held various positions with Arthur Andersen&#160;LLP. Ms.&#160;Shaeff is a Certified Public Accountant and holds a Bachelor of Business Administration in Accounting from Texas A&amp;M University.</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;">Trent T. McKenna, </i>age 49, has served as Chief Operating Officer and Executive Vice President since January 2022 and was formerly Chief Operating Officer and Senior Vice President during 2021. Mr. McKenna previously served as our Senior Vice President and Vice President &#8211; Region 4 from January 2019 to December 2020; Senior Vice President, General Counsel and Secretary from August 2013 to December 2018; Vice President, General Counsel and Secretary from May 2005 to August 2013; and Associate General Counsel from August 2004 to May 2005. From February 1999 to August 2004, Mr. McKenna was a practicing attorney in the area of complex commercial litigation in the Houston, Texas, office of Akin Gump Strauss Hauer &amp; Feld LLP, an international law firm. Mr. McKenna earned a Bachelor of Arts degree in English from Brigham Young University and his Juris Doctorate from Duke University School of Law.</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;">Laura F. Howell, </i>age 34, has served as Senior Vice President and General Counsel for the Company since January 2022 and formerly served as Vice President and General Counsel from January 2019 to December 2021. Previously, Ms. Howell served as the Associate General Counsel from January 2018 to December 2018 and as Senior Counsel, Corporate from November 2014 to December 2017. Prior to joining the Company, she was an associate in the corporate department of the Houston office of Latham &amp; Watkins, LLP from November 2013 to October 2014. From September 2012 to October 2013, Ms. Howell was an associate in the corporate department of the Silicon Valley office of Fenwick &amp; West, LLP. Ms. Howell holds a Bachelor of Arts in Economics from Wake Forest University and a Juris Doctorate from Stanford Law School.</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;">Terrence Reed</i>, age 62, has served as Senior Vice President of People and Leadership Development for the Company since March 2021. Mr. Reed joined the Company after working in various senior manufacturing and HR leadership positions in several organizations, including Koch Engineered Solutions and Buckeye Technologies. Mr. Reed is a graduate of the University of South Alabama, where he completed studies in Mechanical Engineering, and is a former US Army officer. </p><a id="_80027826_9dfa_4d53_b268_7957f9c23875"></a><a id="PARTII_73993"></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;">PART II</b></p><a id="ITEM5MarketforRegistrantsCommonEquityRel"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:50.4pt;text-indent:-50.4pt;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 5.  </b><span style="font-style:italic;font-weight:bold;">Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">Our Common Stock is traded under the symbol FIX on the New York Stock Exchange.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">As of February&#160;18, 2022, there were approximately 301 stockholders of record of our Common Stock, and the last reported sale price on that date was $88.22 per share.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We expect to continue paying cash dividends quarterly, although there is no assurance as to future dividends because they depend on future earnings, capital requirements, and financial condition. In addition, our credit agreement may limit the amount of dividends we can pay at any time that our Total Leverage Ratio exceeds 2.00 to 1.00.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">25</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.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;max-width:100%;position:relative;min-height:297.01pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following Corporate Performance Graph and related information shall not be deemed &#8220;soliciting material&#8221; or to be &#8220;filed&#8221; with the SEC, nor shall such information be incorporated by reference into any future filing under the Securities Act or the Exchange Act, except to the extent that we specifically incorporate it by reference into such filing.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 8pt 0pt;"><img src="fix-20211231x10k002.jpg" alt="Graphic" style="display:inline-block;height:296.71pt;left:0%;padding-bottom:0.3pt;position:relative;top:0pt;width:350.1pt;" /></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 8pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">None.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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 December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3&#160;million shares to be repurchased. As of December&#160;31, 2021, we have repurchased a cumulative total of 9.7&#160;million shares at an average price of $21.69 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 year ended December&#160;31, 2021, we repurchased 0.4&#160;million shares for approximately $27.1&#160;million at an average price of $74.57 per share.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">26</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.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;max-width:100%;position:relative;min-height:11.5pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">During the year ended December&#160;31, 2021, we purchased our common shares in the following amounts at the following average prices:</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:31.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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.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:9.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: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.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:31.94%;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.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: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.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;white-space:nowrap;width:9.65%;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.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;">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.2%;margin:0pt;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.42%;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:31.94%;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.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: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.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;white-space:nowrap;width:9.65%;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.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;">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.2%;margin:0pt;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.42%;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:31.94%;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.6%;margin:0pt;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.7%;margin:0pt;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.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;">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.2%;margin:0pt;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.42%;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:31.94%;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.6%;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.7%;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.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;">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.2%;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.42%;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:31.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">January&#160;1&#160;-&#160;January&#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.6%;background:#cceeff;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,000</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.05%;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.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;"><span style="white-space:pre-wrap;"> 52.59</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.52%;background:#cceeff;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,315,001</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.2%;background:#cceeff;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;"> 978,750</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February&#160;1&#160;-&#160;February&#160;28</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.6%;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.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.05%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> &#8212;</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.52%;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,315,001</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.2%;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;"> 978,750</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">March&#160;1&#160;-&#160;March&#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.6%;background:#cceeff;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,250</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.05%;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.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;"><span style="white-space:pre-wrap;"> 70.99</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.52%;background:#cceeff;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,325,251</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.2%;background:#cceeff;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;"> 968,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April&#160;1&#160;-&#160;April&#160;30</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.6%;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,500</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.05%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 75.45</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.52%;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,328,751</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.2%;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;"> 965,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">May&#160;1&#160;-&#160;May&#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.6%;background:#cceeff;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,721</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.05%;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.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;"><span style="white-space:pre-wrap;"> 80.49</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.52%;background:#cceeff;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,337,472</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.2%;background:#cceeff;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;"> 956,279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">June&#160;1&#160;-&#160;June&#160;30</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.6%;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,871</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.05%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 80.39</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.52%;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,352,343</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.2%;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;"> 941,408</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;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.6%;background:#cceeff;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;"> 55,886</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.05%;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.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;"><span style="white-space:pre-wrap;"> 75.63</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.52%;background:#cceeff;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,408,229</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.2%;background:#cceeff;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;"> 885,522</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;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.6%;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;"> 111,856</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.05%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 74.91</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.52%;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,520,085</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.2%;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;"> 773,666</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;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.6%;background:#cceeff;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;"> 138,380</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.05%;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.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;"><span style="white-space:pre-wrap;"> 71.39</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.52%;background:#cceeff;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,658,465</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.2%;background:#cceeff;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;"> 635,286</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">October&#160;1&#160;-&#160;October&#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.6%;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,170</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.05%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 71.19</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.52%;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,659,635</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.2%;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;"> 634,116</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">November&#160;1&#160;-&#160;November&#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.6%;background:#cceeff;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.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.05%;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.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;"><span style="white-space:pre-wrap;"> &#8212;</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.52%;background:#cceeff;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,659,635</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.2%;background:#cceeff;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;"> 634,116</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">December&#160;1&#160;-&#160;December&#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.6%;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;"> 15,162</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.05%;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.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;"><span style="white-space:pre-wrap;"> 94.93</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.52%;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;"> 9,674,797</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.2%;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;"> 618,954</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:31.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.6%;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;"> 362,796</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.05%;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.65%;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;"> 74.57</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.52%;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;"> 9,674,797</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.2%;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;"> 618,954</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></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:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><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><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;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, 10.3 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 2012 Equity Incentive Plan and 2017 Omnibus Incentive Plan, 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="_2dcc63e0_87a7_4b56_a6ba_6b224952970d"></a><a id="ITEM6SelectedFinancialData_853719"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">ITEM 6. [Reserved]</b></p><a id="_b238800c_3211_4a88_9f1c_8f62de83cf8a"></a><a id="ITEM7ManagementsDiscussionandAnalysisofF"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 7.  </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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following discussion and analysis should be read in conjunction with the Consolidated Financial Statements and related notes included elsewhere in this annual report on Form&#160;10-K. Also see &#8220;Forward-Looking Statements&#8221; discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Introduction and Overview</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 industrial, 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">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, electrical service work, and electrical construction and engineering services.  </span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">27</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">Approximately 86.7% 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 0pt 12pt 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 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;text-indent:36pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December&#160;31, 2021, we had 7,831 projects in process. Our average project takes six to nine months to complete, with an average contract price of approximately $802,000. 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 0pt 12pt 0pt;">We also perform larger projects. Taken together, projects with contract prices of $1&#160;million or more totaled $5.4&#160;billion of aggregate contract value as of December&#160;31, 2021, or approximately 87%, out of a total contract value for all projects in progress of $6.3&#160;billion. Generally, projects closer in size to $1&#160;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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">28</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A stratification of projects in progress as of December&#160;31, 2021, by contract price, is as follows:</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:69.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: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;white-space:nowrap;width:9.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: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;white-space:nowrap;width:1.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:12.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:69.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;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;white-space:nowrap;width:9.83%;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.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="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;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.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;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.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.79%;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;">Contract&#160;Price&#160;of&#160;Project</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: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.83%;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;">Projects</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: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.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;">(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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Under $1&#160;million</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;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;background:#cceeff;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,864</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.76%;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.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;"><span style="white-space:pre-wrap;"> 841.0</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:69.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$1&#160;million - $5&#160;million</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;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;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;"> 679</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.76%;margin:0pt;padding:0pt;"><p style="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.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;"><span style="white-space:pre-wrap;"> 1,527.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:69.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$5&#160;million - $10&#160;million</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;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;background:#cceeff;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;"> 158</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.76%;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.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;"><span style="white-space:pre-wrap;"> 1,084.8</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:69.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$10&#160;million - $15&#160;million</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;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;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;"> 53</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.76%;margin:0pt;padding:0pt;"><p style="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.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;"><span style="white-space:pre-wrap;"> 661.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:69.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Greater than $15&#160;million</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;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.83%;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;"> 77</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.76%;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.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;"><span style="white-space:pre-wrap;"> 2,167.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:69.79%;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.74%;margin:0pt;padding:0pt;"><p style="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.83%;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;"> 7,831</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.76%;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.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;"><span style="white-space:pre-wrap;"> 6,282.1</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;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;">In addition to project work, approximately 13.3% 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;text-indent:36pt;margin:0pt 0pt 12pt 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 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We manage our 41 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, management and execution practices, labor utilization, safety, 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 0pt 12pt 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><a id="_Hlk534818523"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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;">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 </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">29</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">During the five-year period from 2015 to 2019, there was an increase in nonresidential building construction and renovation activity levels. In early 2020, the advent of a global pandemic led to some delays in service and construction, including the potential for delayed project starts and air pockets during 2020 and early 2021, and we believe those effects are now abating.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have a credit facility in place with terms we believe are favorable that does not expire until January 2025. As of December 31, 2021, we had $176.5 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-three 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 0pt 12pt 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 7pt 36pt;"><span style="font-style:italic;font-weight:bold;">Critical Accounting Policies and Estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;"><span style="white-space:pre-wrap;">Our critical accounting policies and estimates are based upon the significance of the accounting policy to our overall financial statement presentation, as well as the complexity of the accounting policy and our use of estimates and subjective assessments. Our most critical accounting policy is revenue recognition. 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 to deliver products or services that do not have an alternative use to the Company.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 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 using the percentage of completion method of accounting, which we consider to be a critical accounting estimate. 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 the cost to cost measure of progress 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 measure of progress, 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 and subcontractors&#8217; costs, other direct costs and an allocation of indirect costs.</span></p><a id="_Hlk93486171"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;"><span style="white-space:pre-wrap;">In our mechanical segment, 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 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;">As discussed elsewhere in this annual report on Form&#160;10-K, our business has two service functions: (i)&#160;installation, which we account for under the percentage of completion method, and (ii)&#160;maintenance, repair and replacement, which we account for as the services are performed, or in the case of replacement, under the percentage of completion method. In addition, we identified other critical accounting policies and estimates related to the recording of our self-insurance liabilities, valuation of deferred tax assets, accounting for acquisitions and the recoverability of goodwill and identifiable intangible assets. These accounting policies and estimates, as well as others, are described in Note&#160;2 to the Consolidated Financial Statements included elsewhere in this annual report on Form&#160;10-K.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">30</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 7pt 36pt;"><i style="font-style:italic;">Percentage of Completion Method of Accounting</i></p><a id="_Hlk93486384"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;">Approximately 86.7% of our revenue was earned on a project basis and recognized through the percentage of completion method of accounting during 2021. Under this method, contract revenue recognizable at any time during the life of a contract is determined by multiplying expected total contract revenue by the percentage of contract costs incurred at any time to total estimated contract costs. More specifically, as part of the negotiation and bidding process to obtain installation contracts, we estimate our contract costs, which include all direct materials, labor and subcontract costs and indirect costs related to contract performance, such as indirect labor, supplies, tools, repairs and depreciation costs. These contract costs are included in our results of operations under the caption &#8220;Cost of Services.&#8221; Then, as we perform under those contracts, we measure costs incurred, compare them to total estimated costs to complete the contract and recognize a corresponding proportion of contract revenue. Labor costs are considered to be incurred as the work is performed. Subcontractor labor is recognized as the work is performed. Non-labor project costs consist of purchased equipment, prefabricated materials and other materials. Purchased equipment on our projects is substantially produced to job specifications, normally installed shortly after receipt and is a value-added element to our work. Prefabricated materials, such as ductwork and piping, are generally performed at our shops and recognized as contract costs when fabricated for the unique specifications of the job. Other materials costs are generally recorded when delivered to the work site. This measurement and comparison process requires updates to the estimate of total costs to complete the contract, and these updates may include subjective assessments and judgments.</p><a id="_Hlk93486434"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 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 on a percentage of completion basis over the life of the contract. We do not currently have any capitalized obtainment or fulfillment costs on our 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;text-indent:36pt;margin:0pt 0pt 7pt 0pt;">Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date percentage of completion of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. As a result, contract revenue recognized in our Statement of Operations can and usually does differ from amounts that can be billed or invoiced to the customer at any point during the contract. Amounts by which cumulative contract revenue recognized on a contract as of a given date exceed cumulative billings and unbilled receivables to the customer under the contract are reflected as a current asset in our Balance Sheet under the caption &#8220;Costs and estimated earnings in excess of billings.&#8221; Amounts by which cumulative billings to the customer under a contract as of a given date exceed cumulative contract revenue recognized on the contract are reflected as a current liability in our Balance Sheet under the caption &#8220;Billings in excess of costs and estimated earnings.&#8221;</p><a id="_Hlk93486502"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;">The percentage of completion method of accounting is also affected by changes in job performance, job conditions, and final contract settlements. These factors may result in revisions to estimated costs and, therefore, revenue. Such revisions are frequently based on further estimates and subjective assessments. The effects of these revisions are recognized in the period in which revisions are determined. When such revisions lead to a conclusion that a loss will be recognized on a contract, the full amount of the estimated ultimate loss is recognized in the period such conclusion is reached, regardless of the percentage of completion of the contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 7pt 0pt;">Revisions to project costs and conditions can give rise to change orders under which there is an agreement between the customer and us that the customer pays an additional or reduced contract price. Revisions can also result in claims we might make against the customer to recover project variances that have not been satisfactorily addressed through change orders with the customer. The amount of revenue associated with unapproved change orders and claims was immaterial for the year ended December&#160;31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">Variations from estimated project costs could have a significant impact on our operating results, depending on project size, and the recoverability of the variation from change orders collected from customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Accounting for Self-Insurance Liabilities</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 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 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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">31</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We believe these accruals are adequate. However, insurance liabilities are difficult to estimate due to unknown factors, including the severity of an injury, the determination of our liability in proportion to other parties, timely reporting of occurrences, ongoing treatment or loss mitigation, general trends in litigation recovery outcomes and the effectiveness of safety and risk management programs. Therefore, if actual experience differs from the assumptions and estimates used for recording the liabilities, adjustments may be required and would be recorded in the period that such experience becomes known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Accounting for Deferred Tax Assets</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Acquisitions</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Contingent Consideration</i>&#8212;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;"><i style="font-style:italic;">Contingent Assets and Liabilities</i>&#8212;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. If the fair values of such contingencies cannot be determined, they are recognized at the acquisition date if the contingencies are probable and an amount can be reasonably estimated. Acquisition date fair value estimates are revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Recoverability of Goodwill and Identifiable Intangible Assets</i></p><a id="_Hlk93487049"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We perform our annual impairment testing as of October&#160;<span style="white-space:pre-wrap;">1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">32</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;">(&#8220;public company approach&#8221;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#8220;EBITDA&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">As described further in Note 6 to the Consolidated Financial Statements, we performed our annual goodwill impairment test during the fourth quarter of 2021. We determined, after performing a qualitative assessment for each reporting unit except one for which we performed a quantitative assessment, that it is more likely than not that the fair value of each of the reporting units for which we performed a qualitative assessment was substantially greater than its carrying value, and that the fair value of the reporting unit for which we performed a quantitative assessment exceeded the carrying value by 32%. Accordingly, no further testing was required and no goodwill impairment was recorded for the year ended <span style="background:#ffffff;">December 31, 2021. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">There are significant inherent uncertainties and management judgment involved in estimating the fair value of each reporting unit. While we believe we have made reasonable estimates and assumptions to estimate the fair value of our reporting units, it is possible that a material change could occur. If actual results are not consistent with our current estimates and assumptions, or the current economic outlook worsens, goodwill impairment charges may be recorded in future periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.<span style="background:#ffffff;"> </span></p><a id="_a9fef137_94ef_4ede_a4c7_cac21bf5a791"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">Results of Operations (in thousands):</b></p><a id="_d4e332fc_7b6e_4bb4_a588_48decbeeb802"></a><a id="_8a3123bd_0b73_492a_9b6f_3b838a7a994b"></a><a id="_69d60534_8230_4fff_91e1_e799dba1d6ac"></a><a id="_58d6e819_323e_44f0_8ff2_b63ea08471dc"></a><a id="_a77b27c3_b552_4c50_9e5d_0efb24deb321"></a><a id="_59a2cc0e_0863_4a26_ba1e_4749d0eb2397"></a><a id="_45c6eaf8_241a_476a_83fb_92de9db47fa6"></a><a id="_70b832d5_acac_4a6f_bb01_c88edf08b2fc"></a><a id="_470ea310_fb8e_4b15_acb4_cb0fd9dc318d"></a><a id="_fa24e947_b207_4eaf_92dc_02a2415d3d77"></a><a id="_6052766b_49f6_491f_a21a_3af2508c11cc"></a><a id="_9f3aa257_9ec0_4bba_80b8_c490fe6fe439"></a><a id="_9bd0f465_fbbc_4c1c_a345_20b33339e4f1"></a><a id="_7024ca16_74ea_4d6c_a6ab_b83c8459616f"></a><a id="_9a48cec4_02f1_4df7_b090_09db50254008"></a><a id="_121c7a41_253e_4f9d_b1e8_b324466906d7"></a><a id="_c55f56fa_9801_484f_a239_388dc13d00a7"></a><a id="_c0efebdb_3257_4590_a4a5_65481278e88d"></a><a id="_ba9cf55c_3fb7_439a_a44e_6fee17433f52"></a><a id="_dc974e3e_0cfa_4828_80b8_4b95dfa3c246"></a><a id="_9d3054e0_bfc6_43b0_aaee_42509232f7d9"></a><a id="_38602424_ca56_457b_9681_cecf5fd31ab3"></a><a id="_5c905c95_8329_49e0_9243_365617393494"></a><a id="_0117db22_84f9_4fb7_a94c_0689d169f55e"></a><a id="_467bd8d3_945e_44a4_a523_90d9adcbd3c1"></a><a id="_ee8e149e_621f_4557_8e26_1f674eedb64c"></a><a id="_169f714a_5c91_457c_b1c2_4bf482fde8fc"></a><a id="_4d922359_89a2_473a_b026_b6be61027469"></a><a id="_62db0cae_26ad_40cd_b50c_92c83ef48081"></a><a id="_8b5e1ab1_cf69_4d36_bc39_16ab34877443"></a><a id="_a3b5d660_45c2_4de1_8c5e_9a258b2ebcf6"></a><a id="_03f49ab3_4c16_414a_beed_a2f2a7c4686f"></a><a id="_3a9605b9_e650_48f0_a774_af17ddebc7eb"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:96.66%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.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:0.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.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:9.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: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><td style="vertical-align:bottom;white-space:nowrap;width:5.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.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.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:9.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: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><td style="vertical-align:bottom;white-space:nowrap;width:5.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:1.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: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><td style="vertical-align:bottom;white-space:nowrap;width:9.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: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><td style="vertical-align:bottom;white-space:nowrap;width:5.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:1.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:37.59%;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.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 colspan="14" style="vertical-align:bottom;white-space:nowrap;width:60.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;">Year Ended December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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.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 colspan="4" style="vertical-align:bottom;white-space:nowrap;width:18.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 3,073,636</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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.08%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 2,856,659</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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.87%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 2,615,277</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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.78%;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:37.59%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 2,510,429</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p 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.06%;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.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;"><span style="white-space:pre-wrap;"> 2,309,676</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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;"> 80.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p 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.06%;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.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;"><span style="white-space:pre-wrap;"> 2,113,334</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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;"> 80.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 563,207</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 546,983</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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;"> 19.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 501,943</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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;"> 19.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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,309</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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;"> 12.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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;"> 357,777</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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;"> 12.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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;"> 340,005</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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;"> 13.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.69%;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,540)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.08%;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.06%;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.69%;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,445)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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:1.87%;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.06%;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.69%;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,701)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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:1.78%;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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;"> 188,438</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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;"> 190,651</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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;"> 163,639</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 24</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 103</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 224</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.78%;background:#cceeff;margin:0pt;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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;"> (6,196)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.2)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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,385)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.87%;margin:0pt;padding:0pt;"><p 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.06%;margin:0pt;padding:0pt;"><p style="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.69%;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,317)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.78%;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 7,820</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 9,119</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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.06%;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.69%;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;"> (2,991)</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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:1.78%;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:37.59%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 188</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 52</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 187</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;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.78%;margin:0pt;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:37.59%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"><span style="white-space:pre-wrap;"> 190,274</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 191,540</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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.06%;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.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;"><span style="white-space:pre-wrap;"> 151,742</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;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.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;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:37.59%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 46,926</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 41,401</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 37,418</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;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:37.59%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 143,348</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><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 150,139</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><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.06%;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.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;"><span style="white-space:pre-wrap;"> 114,324</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><td style="vertical-align:bottom;white-space:nowrap;width:5.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;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 0pt 10pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="_c5c12457_d03e_409b_8e76_d48730108531"></a><a id="_6c6b219b_734a_4828_8d3b_b70e41484134"></a><a id="_60bd58d8_53a1_42b1_8859_b534645587e6"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2021</span><span style="font-style:italic;font-weight:bold;"> Compared to </span><span style="font-style:italic;font-weight:bold;">2020</span></p><a id="_fe6adeec_2868_4566_8f43_e18e800dccde"></a><a id="_916a1130_cf44_4eba_972d_794d90c6badc"></a><a id="_97846f16_a2a5_46f7_8358_b9021935aaa0"></a><a id="_2f0aa4d7_17dc_41a2_a77f_f6e5e4d52e99"></a><a id="_Hlk93478201"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We had 37 operating locations as of December&#160;31, 2020. In the first quarter of 2021, we combined two operating locations into one. Additionally, we completed an immaterial acquisition of a mechanical contractor in Utah, which reports as a separate operating location. In the third quarter of 2021, we completed the acquisition of Amteck Holdco LLC (&#8220;Amteck&#8221;), which also reports as a separate operating location. In the fourth quarter of 2021, we completed the acquisitions of Ivey Mechanical Company, LLC (&#8220;Ivey&#8221;), MEP Holding Co., Inc. (&#8220;MEP Holdings&#8221;), and a temporary staffing company in Indiana, which all report as separate operating locations. As of December&#160;31, 2021, we had 41 operating locations. Acquisitions are included in our results of operations from the respective acquisition date. The same-store comparison from 2021 to 2020, as described below, excludes MEP Holdings, which was acquired December 31, 2021, Ivey, which was acquired December 1, 2021, Amteck, which was acquired August 1, 2021, Tennessee Electric Company, Inc. (&#8220;TEC&#8221;), which was acquired December 31, 2020, three months of results for TAS Energy Inc. (&#8220;TAS&#8221;), which was acquired April 1, 2020, and one month of results for our electrical contractor in North Carolina, which was acquired February 1, 2020 and reports together with our existing North Carolina operation. 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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">33</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.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;max-width:100%;position:relative;"><a id="_ddac4001_2bfe_4b46_b1bc_992f8a3df7ac"></a><a id="_eeafb8ca_3167_41ad_b8f8_98d178d8bc4d"></a><a id="_5c5f4df4_24a2_4ac7_bcdc_024020f0739a"></a><a id="_9034cbbe_5941_4538_97fb_966aef38fdd7"></a><a id="_dc3fb5dd_c445_4fe3_8759_a46adb146bdc"></a><a id="_16145ad6_d81a_4b91_a313_7ddb2e9436ca"></a><a id="_cc4b5f21_7482_4ccf_8b2a_25390a55350f"></a><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;">Revenue</i>&#8212;Revenue increased $217.0&#160;million, or 7.6%, to $3.07&#160;billion in 2021 compared to 2020. The increase included an 8.0% increase primarily related to the North Carolina electrical contractor, TAS, TEC, Amteck and Ivey acquisitions, partially offset by a 0.4% decrease in revenue related to same-store activity. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table presents our operating segment revenue (in thousands, except percentages):</p><a id="_c0938ab9_933a_4152_a213_8ee0a48573d8"></a><a id="_8eec8a64_0578_4292_973f_e0a2b1ac6c29"></a><a id="_b949b54c_541e_4336_b8b4_30893668d732"></a><a id="_adf752f6_fc32_46f6_9554_2b91a873dd3c"></a><a id="_364f50dc_e43b_47c1_9be8_32ca64a29832"></a><a id="_aeac529d_81c9_441d_a369_354a86470900"></a><a id="_5e147a5d_bdf5_4f8a_a971_98d5186b8f4a"></a><a id="_14258ef1_9699_4e2e_a480_3b6a4dced015"></a><a id="_280dde80_e32e_4ac1_9b14_d36dc72e8b3a"></a><a id="_3e2679d8_de65_4d5f_a1d3_a3a7cec85b84"></a><a id="_a7067a93_94f7_42f4_938a_0ae90fa65473"></a><a id="_0f27b9a7_90f2_45b0_8103_f1e81ca1a03d"></a><a id="_0c70c6dd_2e59_4b7f_9ca6_a137b8d2bf7c"></a><a id="_9fc89a50_c91d_4485_aa05_df54e5654b22"></a><a id="_d36947a1_1755_4b7c_bed0_9ae706c91605"></a><a id="_ddd8acb9_c7c7_41b5_9f70_7ba75edfac87"></a><a id="_e76ed38d_6811_442b_8cc8_9a0a72f32acb"></a><a id="_c274b2c2_d908_43c7_959a_26fc376ee2fa"></a><a id="_bdd43017_69ff_47da_b69c_1aab2fa47761"></a><a id="_c964d3e8_d8fe_4dfa_b59d_7635abbea057"></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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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: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:9.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.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:3.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:1.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><td style="vertical-align:bottom;white-space:nowrap;width:12.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: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><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.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-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.26%;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%;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.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;">Year Ended December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;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.26%;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%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:3.84%;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:27.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;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.26%;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%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;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:12.15%;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%;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.88%;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.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:3.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:1.97%;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:12.15%;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.01%;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.92%;background:#cceeff;margin:0pt;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.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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.92%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 2,542,623</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;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:9.88%;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;"> 82.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p 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.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;"><span style="white-space:pre-wrap;"> 2,430,632</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;">&#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;"> 85.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;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.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.15%;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;"> 531,013</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;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.88%;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;"> 17.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:1.97%;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.15%;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;"> 426,027</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;">&#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;"> 14.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;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.26%;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%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;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.15%;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,073,636</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="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.88%;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.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:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;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.15%;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;"> 2,856,659</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;">&#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.92%;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><a id="_abf1425a_7645_4a10_97e7_f263ecb3d4ea"></a><a id="_7de4df7c_0d38_4b01_9eb5_70995076a750"></a><a id="_8a382813_47fe_4444_9d4a_37e6bc9b10fc"></a><a id="_4e9f9351_8fe3_4d80_af0b_4fc805b8e73d"></a><a id="_97d4e3d3_1978_4556_a6db_cc993d06dbee"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue for our mechanical services segment increased $112.0 million, or 4.6%, to $2.54 billion in 2021 compared to 2020. Of this increase, $45.0 million resulted from an additional three months of revenue related to the TAS acquisition ($30.0 million) and the Ivey acquisition ($15.0 million), and $67.0 million was attributable to same-store activity. The same-store revenue increase included an increase in activity in the industrial sector for TAS ($88.9 million) and in nonprofit work at one of our Utah operations ($29.2 million), partially offset by a reduction in activity in the education sector at one of our Virginia operations ($22.7 million) and our Wisconsin operation ($21.7 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><a id="_1869fb8c_fe23_43a3_af89_803a0e779261"></a><a id="_6c2cec9d_827f_4e9d_ad36_ad0cf18ba4a0"></a><a id="_d3996f4b_5700_4d7d_9056_0402885e3acc"></a><a id="_43a7123e_5dff_462a_9070_6672f4932712"></a><a id="_f48ab374_cf6b_4a72_9514_7111b87e1138"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue for our electrical services segment increased $105.0 million, or 24.6%, to $531.0 million in 2021 compared to 2020. The increase primarily resulted from the acquisitions of TEC in December 2020 ($92.3 million) and Amteck in August 2021 ($83.5 million), as well as one additional month of revenue ($8.3 million) for our North Carolina electrical contractor. The same-store revenue decrease included expected decreases driven by a higher volume of large jobs in the prior period at our Texas electrical operation ($91.1 million), partially offset by an increase in activity in the industrial sector at our North Carolina electrical contractor ($12.0 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><a id="_Hlk93482038"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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;">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><a id="_eb9c5014_4470_4517_87ac_b2208a420858"></a><a id="_3bbc8bb6_94cb_4b6c_8725_9e55e9c40bc9"></a><a id="_40577b86_3800_4f36_ab16_ef6c061ecbd5"></a><a id="_72123f6d_bc2c_465e_a73d_42f455a1a963"></a><a id="_d22e920c_0eb7_443a_b306_8f97f054dbe4"></a><a id="_dc2bfd7d_0add_453e_9ca5_51fe72547ab7"></a><a id="_827147d7_ea61_4bb3_b23e_b422abb3e715"></a><a id="_8b3367b7_b3d5_437d_b1b2_9ac9ff5d70bb"></a><a id="_213bd507_40f8_4937_904c_957b91f5ebcb"></a><a id="_2109bd73_5fba_4047_a37c_7ee41eac85ab"></a><a id="_2f2ee015_b289_4733_bfe7_ef1ed87416b9"></a><a id="_9ee16f09_b8ee_4be0_95d1_ec92fcd2c144"></a><a id="_931cc20f_2d15_4ca1_845d_95f53ba3aebc"></a><a id="_04577251_d951_41e4_bce4_6457433dce57"></a><a id="_2ea2a3a2_2fc8_46fa_958d_81ff51138975"></a><a id="_4232c7c6_2de4_4bcc_aaf5_b62ca3a015e8"></a><a id="_a425d225_2645_44ae_9e30_2ffe73ec8c9d"></a><a id="_305602c6_88fb_46f5_91e7_9e0c7fa8f7a1"></a><a id="_a1e37755_b39e_44c4_b341_65ccc7547a8f"></a><a id="_f6f0cca2_8398_45eb_8480_70ba1feb12e5"></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:31.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.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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><td style="vertical-align:bottom;white-space:nowrap;width:11.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.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:3.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:3.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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><td style="vertical-align:bottom;white-space:nowrap;width:11.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.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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></tr><tr><td style="vertical-align:bottom;width:31.36%;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.14%;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="4" style="vertical-align:bottom;white-space:nowrap;width:27.71%;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,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.14%;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:27.71%;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,</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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.36%;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.14%;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:27.71%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;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:3.14%;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:27.71%;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;">2020</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></tr><tr><td style="vertical-align:bottom;width:31.36%;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:3.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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="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.88%;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.14%;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.55%;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.96%;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.14%;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.13%;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.88%;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.14%;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.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.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></tr><tr><td style="vertical-align:bottom;width:31.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;margin:0pt;padding:0pt;"><p 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.88%;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,753,340</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;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.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;"><span style="white-space:pre-wrap;"> 75.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;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:3.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;margin:0pt;padding:0pt;"><p 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.88%;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,267,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;margin:0pt;padding:0pt;"><p style="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.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;"><span style="white-space:pre-wrap;"> 83.8</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></tr><tr><td style="vertical-align:bottom;width:31.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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;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.88%;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;"> 558,544</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;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.55%;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.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;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:3.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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;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.88%;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;"> 244,214</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;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.55%;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;"> 16.2</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></tr><tr><td style="vertical-align:bottom;width:31.36%;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.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.88%;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;"> 2,311,884</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;margin:0pt;padding:0pt;"><p style="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.55%;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.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.88%;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,511,414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.14%;margin:0pt;padding:0pt;"><p style="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.55%;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></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><a id="_75fc058b_42b5_476c_a6ce_54e6ebdc8f66"></a><a id="_c7ba8b1d_d238_41bb_915b_f98dac04e480"></a><a id="_8f34c99e_1b0f_4595_a5a4_34de177b9946"></a><a id="_7cf09127_9062_46a2_903d_5d31936426d2"></a><a id="_0bb2c8c0_760c_4e4d_9c54_1199ed1dd253"></a><a id="_66208ff6_c7a4_41bf_9867_b68c0aeeebdf"></a><a id="_990570c6_f6af_4de2_bc32_881b1dcf452c"></a><a id="_442de19e_d7da_4324_971c_e8bea19d9c4a"></a><a id="_39ef60c9_155b_4a4e_b85f_5d1dde316fba"></a><a id="_b9cdb84f_3f07_4e09_b46b_e413a8877a45"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Backlog as of December&#160;31, 2021 was $2.31&#160;billion, a 19.1% increase from September&#160;30, 2021 backlog of $1.94&#160;billion and a 53.0% increase from December&#160;31, 2020 backlog of $1.51&#160;billion. The sequential backlog increase included the Ivey ($108.5 million) and MEP Holdings ($37.7 million) acquisitions. The sequential same-store backlog increase was primarily a result of increased project bookings at TAS ($132.1 million), our North Carolina operation ($78.5 million) and our Texas electrical operation ($56.7 million). The sequential backlog increase was partially offset by completion of project work at TEC ($39.5 million). The year-over-year backlog increase included the acquisitions of Ivey ($108.5 million), Amteck ($76.0 million) and MEP Holdings ($37.7 million), as well as a same-store increase of $578.2 million, or 38.3%. Same-store year-over-year backlog was broad-based, and increased primarily due to increased project bookings at our North Carolina operation ($146.8 million), our Texas electrical operation ($104.4 million), our Colorado operation ($44.6 million) and TEC ($40.6 million).</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><a id="_11bdb547_a7f4_4bd9_b67c_28941e495952"></a><a id="_32cd1b5c_1060_44f5_aad0_22268b70c4f6"></a><a id="_a2e704fd_24a1_492d_9e42_23d6601df16b"></a><a id="_058d4e58_6dfb_49d2_b52a_23402b7afa72"></a><a id="_d93f64f9_93da_4d2d_9be8_a582d8530a81"></a><a id="_14c7d6e9_b682_421c_9fe1_4adb5098bb4c"></a><a id="_4d59d3ac_6287_40f9_bda7_e1fed256e8ad"></a><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 $16.2&#160;million, or 3.0%, to $563.2&#160;million in 2021 as compared to 2020. The increase included a $26.9&#160;million, or 4.9%, increase related to the TAS, TEC, Amteck, Ivey and North Carolina </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">34</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.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;max-width:100%;position:relative;"><a id="_6b2a25b4_9bb3_4f49_965d_fa8de79641a8"></a><a id="_2283d181_d8f7_41dc_9ffc_e5ad2cb979b7"></a><a id="_7062e684_2ec7_4802_9ae1_be1e4fbe31bc"></a><a id="_73747809_3d0f_44c5_9b42_815518012424"></a><a id="_b99f05b8_bbd4_40cb_b9a7_84c86635e4b3"></a><a id="_fe594fcc_d9ad_42af_ae9b_752b6fe09cc0"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">electrical contractor acquisitions, partially offset by a $10.7&#160;million, or 1.9%, decrease on a same-store basis. The same-store decrease in gross profit was primarily due to project execution issues in the current year at our Arizona operation ($11.2 million) and stronger project execution in the prior year at one of our Florida operations ($10.2 million) and our Indiana operation ($9.4 million), which was partially offset by improvements in project execution on a same-store basis at TAS ($20.8 million). As a percentage of revenue, gross profit decreased from 19.1% in 2020 to 18.3% in 2021 primarily due to lower margins at our Arizona and Indiana operations and one of our Florida 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><a id="_Hlk265385"></a><a id="_a25bd009_4321_47f5_a111_9ca95834b649"></a><a id="_2d032612_69e4_448b_9d1e_1f7695e817e1"></a><a id="_431bb338_3eef_44e9_b3bf_76e7362721ea"></a><a id="_53e2417e_d025_437b_808b_51554e5c978b"></a><a id="_ed01c84c_2d60_45d8_9179_b43178e7969a"></a><a id="_5b0b185e_9a19_4323_8210_29a32ca0335c"></a><a id="_86a9da5d_1f3b_4b2d_8815_e1212838f575"></a><a id="_39a3949b_b70f_4087_931d_56aa9fbe1d99"></a><a id="_a136e691_3317_480f_9f06_1b5b21c62979"></a><a id="_50b316a6_9661_4ea4_9e75_902401c93859"></a><a id="_1651ad38_9e49_4983_81fe_5417f87af620"></a><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;">Selling, General and Administrative Expenses (&#8220;SG&amp;A&#8221;)</i>&#8212;SG&amp;A increased $18.5&#160;million, or 5.2%, to $376.3&#160;million for 2021 as compared to 2020. On a same-store basis, excluding amortization expense, SG&amp;A decreased $6.6&#160;million, or 2.0%. This same-store decrease is primarily due to a decrease of $6.8 million in bad debt expense in 2021 as compared to 2020, driven by reserves recorded in the prior year for certain receivables due to the business interruptions caused by COVID-19, specifically with respect to receivables with retail, restaurants and entertainment companies. Additionally, in the current year, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized. Furthermore, tax consulting fees decreased $2.4 million in 2021 as compared to 2020. Amortization expense increased $3.7 million during the period primarily as a result of the TAS, TEC and Amteck acquisitions. As a percentage of revenue, SG&amp;A decreased from 12.5% in 2020 to 12.2% in 2021 due to the factors discussed above.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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><a id="_4c5925a5_80e2_4eba_8855_db7d19bf8639"></a><a id="_260c9380_fdbf_4332_be0f_f89789c220b6"></a><a id="_e9053c10_f27f_4b8d_a495_25af27fd5265"></a><a id="_7a640839_812f_400e_ac62_99fe9d1334de"></a><a id="_ff4b055b_e04f_4b52_8740_0f42e9e38539"></a><a id="_ee3cc51e_c228_45b3_bf2c_c2d2db1d9dd8"></a><a id="_d68bd95f_8945_45d7_b5b5_bd1c569ea5f3"></a><a id="_3eab2eb3_518f_47ab_858a_402678e7028c"></a><a id="_416470fd_4d28_4445_816f_46288d292075"></a><a id="_4da18bf4_46f0_44c3_b954_8dee947810eb"></a><a id="_86177837_a7e4_4351_b593_a997610e1664"></a><a id="_b0ef4de7_5fa1_480b_a0b4_972ce92bc050"></a><a id="_9543025b_4019_48c7_88f5_203be7794b98"></a><a id="_eced3023_aef8_4c5c_b960_3940657baea5"></a><a id="_1b0fca5c_bd61_47c0_9b5f_0a32c6e2dfed"></a><a id="_c6b7667c_0aac_4d88_b5e4_9218049e236a"></a><a id="_1397cace_c9b5_4dd9_bad6_0bc4ef59a5cd"></a><a id="_99646eea_1465_4b29_9fd8_bfa188b947bc"></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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.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:3.96%;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.49%;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.67%;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:3.96%;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.49%;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.67%;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.8%;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:60.92%;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.96%;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:nowrap;width:34.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;">Year Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;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.92%;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.96%;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:nowrap;width:34.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;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.92%;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.96%;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:15.17%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;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:15.17%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;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="8" style="padding:0pt;"></td></tr><tr><td style="vertical-align:bottom;width:60.92%;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.96%;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:nowrap;width:34.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;">(in&#160;thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;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.92%;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;white-space:nowrap;width:3.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;background:#cceeff;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,309</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;background:#cceeff;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;"> 357,777</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;background:#cceeff;margin:0pt;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.92%;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;white-space:nowrap;width:3.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;margin:0pt;padding:0pt;"><p style="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.67%;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;"> (21,445)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;margin:0pt;padding:0pt;"><p style="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.67%;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:0.8%;margin:0pt;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.92%;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;white-space:nowrap;width:3.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;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;"> (30,214)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;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;"> (26,486)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;background:#cceeff;margin:0pt;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.92%;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;white-space:nowrap;width:3.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;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;"> 324,650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.49%;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.67%;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;"> 331,291</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.8%;margin:0pt;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><a id="_3c1feed0_ff8f_45b2_a810_eee789893ee6"></a><a id="_de840cc4_aa6c_4f7d_b778_f7252aaac2cc"></a><a id="_53f0896d_6a97_46ad_8c0f_9e1860cba25f"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Interest Expense</i>&#8212;Interest expense decreased $2.2&#160;million, or 26.1%, in 2021. The decrease in interest expense is due to a reduction in our average interest rate on our outstanding borrowings in 2021 compared to the prior year as well as a lower average outstanding debt balance as compared to the prior year.</p><a id="_53815180_10ec_44f4_9f97_c620f41d9809"></a><a id="_0e4b3403_c958_4cef_8613_86de80ca97cb"></a><a id="_41d0a4dc_6f61_4494_b009_a52f1b57ce1a"></a><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. Income from changes in the fair value of contingent earn-out obligations decreased $1.3&#160;million in 2021 compared to 2020. This decrease was primarily caused by a larger reduction in the Walker earn-out liability in the prior year driven by project delays, the impact of COVID-19 and lower than forecasted earnings in the fourth quarter of 2020. This was partially offset by reductions in earn-out obligations at our Utah mechanical contractor and our Indiana operation due to lower than forecasted earnings in the fourth quarter of 2021.</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;">Provision for Income Taxes</i>&#8212;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 states with varying 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><a id="_aa6c8af8_25a0_4c43_ae02_7a7d82bd711d"></a><a id="_efa05cd5_bd5a_47c4_9254_58562f441de2"></a><a id="_5deb18ea_d91f_488b_99bc_dbdbd98155b1"></a><a id="_39b70828_2dc2_45da_ab61_6f5a8a6f503e"></a><a id="_53da776b_ee6e_4ea2_8f23_3c637d4d7076"></a><a id="_35308020_defc_4de4_bd01_27c35f086474"></a><a id="_e40ad442_f9a4_4993_b985_93ebcfb12a65"></a><a id="_9b8030f1_20b1_48e8_a698_80843accf4e0"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our provision for income taxes for 2021 was $46.9 million with an effective tax rate of 24.7%, as compared to the provision for income taxes of $41.4 million with an effective tax rate of 21.6% for 2020. The effective rate for 2021 was higher than the 21% federal statutory rate primarily due to net state income taxes (3.9%) and nondeductible expenses, including nondeductible expenses related to TAS (1.3%), partially offset by deductions for stock-based compensation (1.2%) and the energy efficient commercial buildings deduction (the &#8220;179D deduction&#8221;) allocated to us (0.4%). The effective rate for 2020 was higher than the 21% federal statutory rate primarily due to net state income taxes (4.4%) and nondeductible expenses, including nondeductible expenses related to TAS (1.3%), partially offset by </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">35</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">reductions in unrecognized tax benefits plus interest as a result of settlement with the Internal Revenue Service (the &#8220;IRS&#8221;) upon completion of their examination of our amended federal returns for 2014 and 2015 (4.7%). Refer to Note&#160;11 in the Consolidated Financial Statements for a reconciliation of the federal statutory rates to the effective tax rates reflected in our financial statements. </p><a id="_Hlk536175694"></a><a id="_7ae856cb_b594_4dec_bb39_56129b604423"></a><a id="_512b9f0b_03e1_4fa7_9f2f_c04d952b1bd7"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The increase in our effective tax rate from 2020 to 2021 was primarily due to the 2020 reductions in unrecognized tax benefits as a result of settlement with the IRS upon completion of their examination of our amended federal returns for 2014 and 2015.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Following an IRS survey of our previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation (the &#8220;JCT&#8221;) approved such refunds in late January 2022. The refunds were primarily due to claiming the credit for increasing research activities (the &#8220;R&amp;D tax credit&#8221;). Since approval was received after the Balance Sheet date, our effective tax rate for the year ended December 31, 2021 was not affected. However, our provision for income taxes in the first quarter of 2022 will be decreased by $28.8 million due to a reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds. </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;">Our provision for income taxes in the first quarter of 2022 is expected to be further decreased by approximately $24 million due to our intention to claim the R&amp;D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we expect the R&amp;D tax credit to reduce our effective tax rate in future years by amounts that will vary based on our qualifying expenses each year.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#8203;</span></p><a id="_ce826ba3_77e2_459a_8305_19794bbc15ac"></a><a id="_77923ac7_b1a2_467e_8875_80e69a75cebd"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">2020</span><span style="font-style:italic;font-weight:bold;"> Compared to </span><span style="font-style:italic;font-weight:bold;">2019</span></p><a id="_31fb0c46_815f_4262_aa27_c9dec1889a93"></a><a id="_42492e81_5fe1_4d9e_adc9_c5f45f5fb906"></a><a id="_9c217242_9a82_40bf_bd5f_c47c3e578907"></a><a id="_0c0af20c_5cd0_47cd_b96d_c89c2527fee5"></a><a id="_9e25cde9_3fd4_47c5_a1b4_79ab7edeeb98"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For a discussion of the period-to-period comparison of 2020 to 2019, please refer to &#8220;Item 7&#8212;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8212;Results of Operations&#8212;2020 Compared to 2019&#8221; in our Annual Report on Form 10-K for the year ended December 31, 2020. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Outlook</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">As 2022 begins, we believe that we are returning to good ongoing market conditions and that we have largely recovered from negative impacts to our business due to the business disruption caused by COVID-19. We continue to recover from delays in the award of new construction work, especially instances of delayed starts, and we continue to experience increased labor costs, inflation in labor and materials, as well as reduced availability and delays in delivery of some materials and equipment.  We are recognizing these challenges in our job planning and pricing, and we are working to order materials earlier than usual and work with customers to share the risks of and mitigate the effects of these challenges.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company considered the ongoing impact of COVID-19 on the assumptions and estimates used to determine our results and asset valuations as of December 31, 2021, and determined that there were no material or systematic adverse impacts on the Company except for previously disclosed delays, cost and availability constraints for labor and materials, and operational inefficiency.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have a good pipeline of opportunities and potential backlog, and we have been generally successful in maintaining activity levels and productivity and in procuring needed materials despite ongoing challenges. Considering all these factors, we currently anticipate solid earnings and cash flow in 2022. We continue to prepare for a wide range of pandemic-related challenges and economic circumstances; however, despite challenges, we currently expect supportive conditions for our industry are likely to continue in 2022.</p><a id="_44604541_bea6_4e0a_98c5_11720527468c"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">36</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Liquidity and Capital Resources</b></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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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: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><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.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;white-space:nowrap;width:2.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: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.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;white-space:nowrap;width:2.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: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.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: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:57.19%;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: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><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="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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.83%;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.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;white-space:nowrap;width:10.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.83%;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.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;white-space:nowrap;width:10.76%;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.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:57.19%;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: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><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:41.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;">Year&#160;Ended&#160;December&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.02%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;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.02%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;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.05%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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 style="height:0pt;visibility:hidden;"><td colspan="11" style="padding:0pt;"></td></tr><tr><td style="vertical-align:bottom;width:57.19%;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: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><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:41.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:nowrap;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:57.19%;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;white-space:nowrap;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="font-size:11pt;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="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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;">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">&#160;&#160;&#160;&#160;</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="font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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;">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">&#160;&#160;&#160;&#160;</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="font-size:11pt;visibility:hidden;">&#8203;</span></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;margin:0pt;"><span style="font-size:11pt;">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.19%;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;white-space:nowrap;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><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.74%;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,151</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.74%;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;"> 286,510</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.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;"><span style="white-space:pre-wrap;"> 142,028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> (246,722)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.74%;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;"> (207,802)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.76%;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;"> (224,450)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> 70,451</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.74%;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;"> (74,600)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.76%;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,590</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> 3,880</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.74%;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;"> 4,108</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.76%;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;"> 5,168</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.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:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.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:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.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: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:57.19%;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;white-space:nowrap;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><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.74%;background:#cceeff;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,151</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.74%;background:#cceeff;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;"> 286,510</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.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;"><span style="white-space:pre-wrap;"> 142,028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> (22,330)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.74%;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;"> (24,131)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.76%;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;"> (31,750)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> 3,101</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.74%;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;"> 2,270</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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: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.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;"><span style="white-space:pre-wrap;"> 2,159</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.19%;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;white-space:nowrap;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><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.74%;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;"> 160,922</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.74%;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;"> 264,649</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.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;"><span style="white-space:pre-wrap;"> 112,437</span></p></td><td style="vertical-align:bottom;white-space:nowrap;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></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2021 Compared to 2020</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;">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 0pt 12pt 0pt;">We generated $180.2&#160;million of cash flow from operating activities during 2021 compared with $286.5&#160;million during 2020. The $106.3&#160;million decrease was primarily driven by a $96.5 million change in receivables, net, attributable to stronger collections in the prior year. Operating cash flows in the prior year benefited by approximately $32.0 million from the deferral of payroll taxes allowed by the Coronavirus Aid, Relief, and Economic Security Act (&#8220;CARES Act&#8221;) that normally would have been paid by December 31, 2020. Operating cash flows in 2021 were negatively impacted by the repayment of $17.7 million of the deferred payroll taxes related to 2020. This was partially offset by a $25.2 million change in billings in excess of costs driven by timing of billings and various project work.</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;Cash used in investing activities was $246.7&#160;million for 2021 compared to $207.8&#160;million during 2020. The $38.9&#160;million increase in cash used primarily <span style="white-space:pre-wrap;">relates to cash paid (net of cash acquired) for acquisitions in 2021 compared to the same period in 2020.  </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;"><i style="font-style:italic;">Cash Provided by (Used in) Financing Activities</i>&#8212;Cash provided by financing activities was $70.5&#160;million for 2021 compared to cash used in financing activities of $74.6&#160;million during 2020. The $145.1&#160;million increase in cash provided is primarily due to $108.0 million more in net proceeds from the senior credit facility compared to the prior year, primarily to fund acquisitions in the current year.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">37</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">2020 Compared to 2019</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For a discussion of the period-to-period comparison of 2020 to 2019, please refer to &#8220;Item 7&#8212;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8212;Liquidity and Capital Resources&#8212;2020 Compared to 2019&#8221; in our Annual Report on Form 10-K for the year ended December 31, 2020. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Free Cash Flow</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">On March&#160;29, 2007, our Board of Directors 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 December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3&#160;million shares to be repurchased. As of December&#160;31, 2021, we have repurchased a cumulative total of 9.7&#160;million shares at an average price of $21.69 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 year ended December&#160;31, 2021, we repurchased 0.4&#160;million shares for approximately $27.1&#160;million at an average price of $74.57 per share.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 12pt 36pt;"><i style="font-style:italic;">Revolving Credit Facility and Term Loan</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have a $600.0 million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of December 31, 2021, the Facility capacity was $570.0 million, as the term loan was paid down by $30.0 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 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 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. In 2019, we incurred approximately $1.4 million in financing and professional costs in connection with an amendment to the Facility, which are being amortized over the remaining term of the Facility. Of this amount, $0.4 million is attributable to the term loan and is being amortized using the effective interest method. For the term loan, we are required to make quarterly payments increasing over time from 1.25% to 3.75% of the original aggregate principal amount of the term loan, with the balance due in January 2025. As of December&#160;31, 2021, we had $120.0 million principal outstanding on the term loan, $220.0 million of outstanding borrowings on the revolving credit facility, $53.5&#160;million in letters of credit outstanding and $176.5&#160;million of credit available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 0pt 0pt;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan option and the Eurodollar Rate 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. The weighted </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">38</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.4% as of December&#160;31, 2021. The weighted average interest rate applicable to the term loan was approximately 1.4% as of December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 for a fee. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such claims are unlikely in the foreseeable future. The letter of credit fees range from 1.25% to 2.00% per annum, based on the ratio of Consolidated Total Indebtedness to &#8220;Credit Facility Adjusted EBITDA,&#8221; which shall mean Consolidated EBITDA as such term is defined in the credit agreement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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.20% to 0.35% per annum, based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Interest expense included the following primary elements (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:94.58%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.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:2.21%;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:6.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:2.22%;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:6.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:2.22%;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:6.29%;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.1%;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:69.31%;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:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:69.31%;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="2" style="vertical-align:bottom;white-space:nowrap;width:7.62%;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;">2021</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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.62%;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;">2020</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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.67%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:69.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on notes to former owners</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.38%;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.24%;background:#cceeff;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,052</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:1.38%;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.24%;background:#cceeff;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,354</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:1.38%;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.29%;background:#cceeff;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,531</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;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:69.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on borrowings and unused commitment fees</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.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.24%;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,371</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;"><span style="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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.24%;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,319</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;"><span style="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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.29%;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,887</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;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:69.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on interest rate swaps</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.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.24%;background:#cceeff;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;"> 499</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:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.24%;background:#cceeff;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;"> 338</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:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.29%;background:#cceeff;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.1%;background:#cceeff;margin:0pt;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:69.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on finance leases</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.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:6.24%;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;"> 57</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;"><span style="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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.24%;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.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.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:6.29%;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.1%;margin:0pt;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:69.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</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.38%;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:6.24%;background:#cceeff;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;"> 679</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:1.38%;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:6.24%;background:#cceeff;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;"> 830</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:1.38%;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:6.29%;background:#cceeff;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;"> 512</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;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:69.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of debt financing costs</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.38%;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:6.24%;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;"> 538</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;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:6.24%;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;"> 544</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;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:6.29%;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;"> 387</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;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:69.31%;background:#cceeff;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.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.38%;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:6.24%;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;"> 6,196</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:1.38%;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:6.24%;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;"> 8,385</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:1.38%;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:6.29%;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;"> 9,317</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;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-indent:36pt;margin:12pt 0pt 12pt 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. Credit Facility Adjusted EBITDA is defined under the Facility for financial covenant purposes as net earnings for the four quarters ending as of any given quarterly covenant compliance measurement date, plus the corresponding amounts for (a)&#160;interest expense; (b)&#160;provision for income taxes; (c)&#160;depreciation and amortization; (d)&#160;stock compensation; (e) other non-cash charges; and (f)&#160;pre-acquisition results of acquired companies. The following is a reconciliation of Credit Facility Adjusted EBITDA to net income for 2021 (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.12%;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.57%;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.28%;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.95%;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.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></tr><tr><td style="vertical-align:bottom;width:85.12%;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:2.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></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:9.95%;background:#cceeff;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;"> 143,348</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:85.12%;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:2.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><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:9.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;"> 46,926</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:85.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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:9.95%;background:#cceeff;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,172</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:85.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Depreciation and amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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:9.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;"> 68,944</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:85.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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:9.95%;background:#cceeff;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,593</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:85.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Pre-acquisition results of acquired companies, as defined under the Facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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:9.95%;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;"> 45,433</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:85.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Credit Facility Adjusted EBITDA</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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:9.95%;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;"> 321,416</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 8pt 0pt;">The Facility&#8217;s principal financial covenants include:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Total Leverage Ratio&#8212;</i>The Facility requires that the ratio of our Consolidated Total Indebtedness to our Credit Facility Adjusted EBITDA not exceed 3.00 to 1.00 as of the end of each fiscal quarter. The total leverage ratio as of December&#160;31, 2021 was 1.2.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 0pt 36pt;"><i style="font-style:italic;">Fixed Charge Coverage Ratio&#8212;</i>The Facility requires that the ratio of (a) Credit Facility Adjusted EBITDA, less non-financed capital expenditures, provision for income taxes, dividends and amounts used to repurchase stock when the Company&#8217;s Total Leverage Ratio exceeds 2.00 to 1.00 to (b) the sum of interest expense and scheduled principal payments of indebtedness be at least 1.50 to 1.00. Credit Facility Adjusted EBITDA, capital expenditures, provision for income taxes, dividends, stock repurchase payments, interest expense, and scheduled principal payments are defined under the Facility for purposes of this covenant, to be </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">39</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 36pt;">amounts for the four quarters ending as of any given quarterly covenant compliance measurement date. The fixed charge coverage ratio as of December&#160;31, 2021 was 42.0.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Other Restrictions&#8212;</i>The Facility permits acquisitions of up to $5.0 million per transaction, provided that the aggregate purchase price of such an acquisition and of acquisitions in the same fiscal year does not exceed $10.0 million. However, these limitations only apply when the Company&#8217;s Total Leverage Ratio is greater than 2.50 to 1.00.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 36pt;">While the Facility&#8217;s financial covenants do not specifically govern capacity under the Facility, if our debt level under the Facility at a quarter-end covenant compliance measurement date were to cause us to violate the Facility&#8217;s leverage ratio covenant, our borrowing capacity under the Facility and the favorable terms that we currently have could be negatively impacted by the lenders.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 36pt;">We were in compliance with all of our financial covenants as of December&#160;31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><i style="font-style:italic;">Notes to Former Owners</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">As part of the consideration used to acquire ten companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $48.0 million as of December 31, 2021. In conjunction with the acquisition of MEP Holdings in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $7.6 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in April 2024 and April 2025. In conjunction with the acquisition of Ivey in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $8.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in January 2025. In conjunction with the acquisition of Amteck in the third quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $10.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in October 2024 and October 2025. In conjunction with the acquisition of a Texas electrical contractor in the second quarter of 2019, we issued a promissory note to former owners with an outstanding balance of $2.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 4.0%. The remaining principal is due in April 2023. In conjunction with the six remaining acquisitions, we issued notes to former owners with an outstanding balance of $20.4 million as of December 31, 2021 that bear interest, payable quarterly, at stated interest rates ranging from 2.3% - 3.5%. The principal amounts are due between April 2022 and April 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 8pt 36pt;"><span style="font-style:italic;font-weight:bold;">Outlook</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">We have generated positive net free cash flow for the last twenty-three 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 0pt 8pt 0pt;"><b style="font-weight:bold;">Off-Balance Sheet Arrangements and Other Commitments</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 8pt 0pt;">As is common in our industry, we have entered into certain off-balance sheet arrangements in the ordinary course of business that result in risks not directly reflected in our Balance Sheets, such as obligations involving letters of credit and surety guarantees.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. The letters of credit we provide are actually issued by our lenders through the Facility as described above. 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. Depending on the circumstances of such a reimbursement, we may also have to record a charge to earnings for the reimbursement. 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 the Facility&#8217;s capacity just the same as actual borrowings. Claims against letters of credit are rare in our industry. To date, we have not had a claim made against a letter of credit that resulted in payments by a lender or by us. We believe that it is unlikely that we will have to fund claims under a letter of credit in the foreseeable future.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">40</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf, and we do not expect such losses to be incurred in the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 15% to 25% 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 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 0pt 12pt 0pt;"><b style="font-weight:bold;">Material Cash Requirements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Our material cash expenditures consist of normal operating expenditures, such as personnel costs, as well as the items noted in the following table. The table below summarizes current and long-term material cash requirements as of December 31, 2021, which we expect to fund primarily with operating cash flows (in thousands):</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:28.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:2.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.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: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:2.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.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: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:2.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.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: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:2.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.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:7.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:2.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.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: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:2.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.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: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:2.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.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:7.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: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:28.29%;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.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><td colspan="14" style="vertical-align:bottom;white-space:nowrap;width:48.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;">Twelve&#160;Months&#160;Ended December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></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;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.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 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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;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.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:28.29%;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.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:7.83%;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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:7.83%;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.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:7.83%;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.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:8.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;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:7.83%;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;">2026</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:7.83%;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;">Thereafter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">Total</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:28.29%;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;white-space:nowrap;width:2.06%;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:1.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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:7.83%;background:#cceeff;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;"> 220,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:1.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:7.83%;background:#cceeff;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;"> 220,000</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:28.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 15,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 22,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;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;"> 82,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;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;"> 120,000</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:28.29%;background:#cceeff;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;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 2,704</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 12,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 12,800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;background:#cceeff;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;"> 19,550</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;background:#cceeff;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;"> 47,954</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:28.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 5,828</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 5,662</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> 4,915</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;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;"> 203</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.83%;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;"> 16,608</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:28.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;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,729</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;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,142</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;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;"> 18,738</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;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;"> 17,642</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;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;"> 14,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;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;"> 55,161</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;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;"> 151,043</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:28.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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:6.79%;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;"> 32,261</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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:6.79%;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;"> 54,704</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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:6.79%;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;"> 58,953</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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.83%;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;"> 339,895</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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:6.79%;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,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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:6.79%;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;"> 55,161</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.03%;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.83%;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;"> 555,605</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;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">As of December&#160;31, 2021, we have $53.5&#160;million in letter of credit commitments, of which $26.8&#160;million will expire in 2022 and $26.7&#160;million will expire in 2023. 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 2022, 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;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">As discussed in Note&#160;11 &#8220;Income Taxes,&#8221; included in our Consolidated Balance Sheet at December&#160;31, 2021 is $29.5&#160;million of unrecognized tax benefits; however, we will have a reduction of $28.8 million in unrecognized tax benefits in the first quarter of 2022. Due to the uncertain and complex application of tax regulations, combined with the difficulty in predicting when tax audits may be concluded, we generally cannot make reliable estimates of the timing of cash outflows related to the remaining $0.7 million of liabilities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Other than the lease obligations discussed in Note 10 &#8220;Leases,&#8221; we have no significant purchase or operating commitments outside of commitments to deliver equipment and provide labor in the ordinary course of performing project work.</p><a id="_64565247_3626_48bf_889a_0a5adcbdfd6d"></a><a id="ITEM7AQuantitativeandQualitativeDisclosu"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 7A.  </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;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 </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">41</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">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 0pt 12pt 0pt;">We have exposure to changes in interest rates under our senior credit facility. Our debt with fixed interest rates consists of notes to former owners of acquired companies.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table presents principal amounts (stated in thousands) and related average interest rates by year of maturity for our debt obligations and their indicated fair market value at December&#160;31, 2021:</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:30.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:6.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.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:6.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:6.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:7.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: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:6.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: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: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: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:7.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:0.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></tr><tr><td style="vertical-align:bottom;width:30.92%;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="14" style="vertical-align:bottom;white-space:nowrap;width: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;">Twelve&#160;Months&#160;Ended December 31,</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: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:7.65%;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:7.96%;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.42%;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:30.92%;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:7.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;">2022</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.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;">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:7.98%;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: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;">2025</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.05%;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;">2026</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.69%;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;">Thereafter</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: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;">Total</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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:30.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fixed Rate Debt</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.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:6.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;"><span style="white-space:pre-wrap;"> 2,704</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.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:6.93%;background:#cceeff;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;"> 12,900</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:6.94%;background:#cceeff;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;"> 12,800</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:7.96%;background:#cceeff;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;"> 19,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;margin:0pt;padding:0pt;"><p 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.01%;background:#cceeff;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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</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:7.96%;background:#cceeff;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;"> 47,954</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:30.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Average Interest Rate</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.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:6.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;">2.6%</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.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:6.93%;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.6%</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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%</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.96%;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%</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.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;"> &#8212;</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;">&#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;"><span style="white-space:pre-wrap;"> &#8212;</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.96%;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%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:30.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Variable Rate Debt</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.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:6.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;"><span style="white-space:pre-wrap;"> &#8212;</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.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:6.93%;background:#cceeff;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;"> 15,000</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:6.94%;background:#cceeff;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;"> 22,500</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:7.96%;background:#cceeff;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;"> 302,500</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:6.01%;background:#cceeff;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.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: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;"><span style="white-space:pre-wrap;"> &#8212;</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:7.96%;background:#cceeff;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;"> 340,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.4% as of December&#160;31, 2021. The weighted average interest rate applicable to the term loan was approximately 1.4% as of December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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;">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 (e.g.,&#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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">42</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.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;max-width:100%;position:relative;"><a id="_5e5e48fd_8e8b_41a1_8ba9_f2da9ac43ecc"></a><a id="ITEM8FinancialStatementsandSupplementary"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 8.  </b><span style="font-style:italic;font-weight:bold;">Financial Statements and Supplementary Data</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;">INDEX TO FINANCIAL STATEMENTS</b></p><a id="_c888a546_2b56_4d28_9b7f_f53687ee1d58"></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;white-space:nowrap;width:94.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><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:1pt;margin:0pt;">HIDDEN_ROW</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%;"></div></div></td><td style="vertical-align:bottom;width:3.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%;"></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:94.34%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</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;line-height:1.27;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:3.51%;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;"><b style="font-weight:bold;">Page</b></p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><a href="#COMFORTSYSTEMSUSAINC_496109"><span style="font-style:normal;font-weight:normal;">Comfort Systems USA,&#160;Inc.</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.51%;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;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#ReportofIndependentRegisteredPublicAccou"><span style="font-style:normal;font-weight:normal;">Report of Independent Registered Public Accounting Firm</span></a> (PCAOB ID No. <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:AuditorFirmId" id="Narr_Fd8wvphHKU28Bn77HdTgBQ">34</ix:nonNumeric>)</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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">44</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#ReportofIndependentRegisteredEY"><span style="font-style:normal;font-weight:normal;">Report of Independent Registered Public Accounting Firm</span></a> (PCAOB ID No. <ix:nonNumeric contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" name="dei:AuditorFirmId" id="Narr_6mHxt5jkLkqULXqDRb9OGQ">42</ix:nonNumeric>)</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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">46</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#CONSOLIDATEDBALANCESHEETS_522126"><span style="font-style:normal;font-weight:normal;">Consolidated Balance Sheets</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">47</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#CONSOLIDATEDSTATEMENTSOFOPERATIONS_39514"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Operations</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">48</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#STATEMENTSOFSTOCKHOLDERSEQUITY_511143"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Stockholders&#8217; Equity</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">49</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#STATEMENTSOFCASHFLOWS_915327"><span style="font-style:normal;font-weight:normal;">Consolidated Statements of Cash Flows</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">50</p></td></tr><tr><td style="vertical-align:top;width:94.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 10.09pt;"><a href="#NOTESTOCONSOLIDATEDFINANCIALSTATEMENTS_6"><span style="font-style:normal;font-weight:normal;">Notes to Consolidated Financial Statements</span></a></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;line-height:1.27;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:3.51%;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;">51</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="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 8pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 8pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">43</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.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;max-width:100%;position:relative;"><a id="_20c9d44b_5fe9_4e39_be1c_cb767b69cc7e"></a><a id="ReportofIndependentRegisteredPublicAccou"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;">Report of Independent Registered Public Accounting Firm</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;">To the stockholders and the Board of Directors of Comfort Systems USA, Inc. </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;">Opinion on the Financial Statements </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;">We have audited the accompanying consolidated balance sheet of Comfort Systems USA, Inc. and subsidiaries (the &#8220;Company&#8221;) as of December&#160;31, 2021, the related consolidated statements of operations, stockholders&#8217; equity and cash flows, for the year ended December&#160;31, 2021, and the related notes (collectively referred to as the &#8220;consolidated financial statements&#8221;). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2021, and the results of its operations and its cash flows for the year ended December 31, 2021, in conformity with accounting principles generally accepted in the United States of America.</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;">We have also audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the Company&#39;s internal control over financial reporting as of December 31, 2021, based on criteria established in <i style="font-style:italic;">Internal Control-Integrated Framework</i> <i style="font-style:italic;">(2013)</i> issued by the Committee of Sponsoring Organizations of the Treadway Commission and our report dated February 23, 2022, expressed an unqualified opinion on the Company&#8217;s internal control over financial reporting.</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;">Basis for Opinion </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;">These financial statements are the responsibility of the Company&#39;s management. Our responsibility is to express an opinion on the Company&#8217;s financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB. </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;">We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the financial statements are free of material misstatement, whether due to error or fraud. Our audit included performing procedures to assess the risks of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the financial statements. Our audit also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the financial statements. We believe that our audit provides a reasonable basis for our opinion. </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;">Critical Audit Matter</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;">The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.</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;">Revenue from Contracts with Customers &#8211; Refer to Notes 2 and 3 to the consolidated financial statements</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;"><i style="font-style:italic;">Critical Audit Matter Description</i></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;">The Company recognizes revenue based on the extent of progress towards completion of the performance obligation. The Company generally uses the cost to cost measure of progress for its contracts, as it depicts the transfer of assets to the customer that occurs as the Company incurs costs, which include labor, materials, subcontractors&#8217; costs, other direct costs, and an allocation of indirect costs. Under the cost to cost measure of progress, 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. </p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">44</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Due to the nature of the work required to be performed on many of the performance obligations, the estimation of costs at completion is complex, subject to many variables and requires considerable judgment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Given the judgments necessary to account for the Company&#8217;s contracts with customers, specifically the use of estimates, such as total costs to be incurred at contract completion, which are complex and subject to many variables, auditing the corresponding balances and related accounting estimates required extensive audit effort due to the complexity of these estimates, and a high degree of auditor judgment when performing audit procedures and evaluating the results of those procedures.</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;"><i style="font-style:italic;">How the Critical</i><i style="font-style:italic;"> Audit Matter was Addressed in the Audit</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-align:justify;margin:6pt 0pt 6pt 0pt;">Our audit procedures related to management&#8217;s estimates and judgments included within the Company&#8217;s estimated total costs at completion, included the following, among others:</p><div style="margin-top:6pt;"></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;min-height:12.0pt;table-layout:fixed;width:100%;border:0pt;"><tr><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;">We tested the operating effectiveness of controls over the recognition of revenue, including those over the determination of estimated costs at completion of the contracts (including the estimated progress toward completion).</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;min-height:10.0pt;table-layout:fixed;width:100%;border:0pt;"><tr><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;">We evaluated quarter over quarter changes in contract profit estimates for a selection of contracts by obtaining explanations from Company&#8217;s management regarding timing and amount and corroborating these inquiries by inspecting documents, including management work plans, customer communications, change orders, vendor invoices, and supplier or subcontractor communications. </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;min-height:12.0pt;table-layout:fixed;width:100%;border:0pt;"><tr><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;">We developed an independent expectation of recorded revenue at certain operating units using analytical procedures and considering relevant current and historical information and compared our expectations to the recorded revenue for the operating unit.</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="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;">For a sample of contracts with customers, we performed the following:</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:'Courier New';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">o</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Evaluated the reasonableness of management&#8217;s estimates of total costs and profit at completion for selected contracts with customers by:</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:72pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9726;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Evaluating management&#8217;s ability to estimate total costs at completion for each selected contract by performing corroborating inquiries with the Company&#8217;s project managers and personnel involved with the selected contracts, and comparing the estimates to management&#8217;s work plans, suppliers&#8217; contracts, and/or engineering specifications.</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:72pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9726;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Comparing management&#8217;s estimates to supporting documents such as purchase orders, subcontract agreements, third-party invoices from suppliers, historical actual results, and other sources, as applicable. </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:72pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9726;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Evaluating management&#8217;s ability to accurately estimate total costs and profits at completion by comparing actual costs and profits to management&#8217;s historical estimates for performance obligations that have been fulfilled. </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:72pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9726;</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Evaluating changes in estimates and obtaining evidence on timing and amounts supporting these changes in estimates such as approved change order documents, communications with the customer, subcontract agreements and related amendments, recent actual costs, and other sources. </span></td></tr></table><div style="margin-top:6pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#ff0000;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;">/s/ <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:AuditorName" id="Narr_FHIXn22PI0qGLOiVPeklvw">Deloitte &amp; Touche LLP</ix:nonNumeric></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;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="dei:AuditorLocation" id="Narr_DXLP5ibbBUOQy1v5te3pPw">Houston, Texas</ix:nonNumeric> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 23, 2022 </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;">We have served as the Company&#8217;s auditor since 2021. </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="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="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="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="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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">45</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.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;max-width:100%;position:relative;"><a id="ReportofIndependentRegisteredEY"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Report of Independent Registered Public Accounting Firm</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;">To the Stockholders and the Board of Directors of Comfort Systems USA, Inc. </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;">Opinion on the Financial Statements </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;">We have audited the accompanying consolidated balance sheet of Comfort Systems USA, Inc. (the Company) as of December 31, 2020, the related consolidated statements of operations, stockholders&#8217; equity and cash flows for each of the two years in the period ended December 31, 2020, and the related notes (collectively referred to as the &#8220;consolidated financial statements&#8221;). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company at December 31, 2020, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2020, in conformity with U.S. generally accepted accounting principles.</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;">Basis for Opinion </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;">These financial statements are the responsibility of the Company&#39;s management. Our responsibility is to express an opinion on the Company&#8217;s financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB. </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;">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the financial statements are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the financial statements. We believe that our audits provide a reasonable basis for our opinion. </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;background:#ffffff;margin:0pt;">/s/ <ix:nonNumeric contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" name="dei:AuditorName" id="Narr_4nZm-juiU0eQEwQkspnNGg">Ernst &amp; Young LLP</ix:nonNumeric></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;">We served as the Company&#8217;s auditor from 2002 to 2021.</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;background:#ffffff;margin:0pt;"><ix:nonNumeric contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" name="dei:AuditorLocation" id="Narr_iS4OyBmW0USd7gu_tkmzPw">Houston, Texas</ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;background:#ffffff;margin:0pt;"><span style="font-size:13.5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;background:#ffffff;margin:0pt;">February 25, 2021,</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;background:#ffffff;margin:0pt;">except for Note 16, as to which the date is</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;background:#ffffff;margin:0pt;"><span style="font-size:13.5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;background:#ffffff;margin:0pt;">February 23, 2022</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;line-height:1.27;margin:0pt 0pt 8pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">46</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.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;max-width:100%;position:relative;"><a id="_da3441a7_c5cc_48ee_a40d_d91b71db54ae"></a><a id="COMFORTSYSTEMSUSAINC_496109"></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;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="CONSOLIDATEDBALANCESHEETS_522126"></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 0pt 12pt 0pt;"><b style="font-weight:bold;">(In Thousands, Except Share Amounts)</b></p><a id="_551b0e27_ece5_47dc_b12c_0bd837bde987"></a><a id="Tc_KIuBy0S2e0WHNNIjc7X08w_1_2"></a><a id="Tc_pwYC631f80yE9S6a0iCrMA_2_2"></a><a id="Tc_vJrt-UZizkOaAWeI5P5_LA_2_5"></a><a id="Tc_TQiouDBe1E6PzMAPiDGfWw_4_0"></a><a id="Tc_hmYttNB9ukil17Nd0R57Eg_5_0"></a><a id="Tc_IxOzDWdkX0iNvBZhJB351Q_6_0"></a><a id="Tc_nhTI5vTASEyR9u7_qGyu9A_6_2"></a><a id="Tc_Pqv7Bu0i706bwLruEeWPGw_6_5"></a><a id="Tc_Gm7m49xF8EKrW6LyAtwhhQ_7_0"></a><a id="Tc_G4mOs3l0VUe8toiuOFC_Zg_8_0"></a><a id="Tc_P29ZxOWs6UGud2fhzivAwg_9_0"></a><a id="Tc_3CzPmgGi9kGNpmDBjfeISQ_10_0"></a><a id="Tc__UyHh-WmNE-bzI99Ww3DnA_11_0"></a><a id="Tc_hVz6rqgNsUCVU4hLrKNDzw_12_0"></a><a id="Tc_9me4XpYDZE6fbPD-KOI-QA_13_0"></a><a id="Tc_uIImRknvc0OrZKRnwdMeKw_14_0"></a><a id="Tc_YqKU_zJLgku-VNjOpmflDg_15_0"></a><a id="Tc_Ccf2QMkrX02I6u3YEMg7Qw_16_0"></a><a id="Tc_0Wnqw0O8gEaIBUjEa1pGWA_17_0"></a><a id="Tc_OHQWCXO_Sku7Pr54Bm68Fg_18_0"></a><a id="Tc_pY7hbRmey0mQ5ieqgEiFeg_19_0"></a><a id="Tc_EwWqvNu0qU277-QCMIjVVw_20_0"></a><a id="Tc_1Im4XGvw00eVR3UBJPMYpA_20_2"></a><a id="Tc_NWIdTv1p1Ea1Pb8A_hLj6A_20_5"></a><a id="Tc_37Lyc5pIyEG6-mn6wawwHg_21_0"></a><a id="Tc_M5rl5sYJdkOO8sXY5CVGlw_22_0"></a><a id="Tc_HBN69RRC70-EK757LDrgOg_23_0"></a><a id="Tc_zUBFmg6jV0q-aRVaMQK0aA_23_2"></a><a id="Tc_Vf0B6Jgo3Eu72fLjF-0rqg_23_5"></a><a id="Tc_KviuRWjs60a2Umpvxvz50w_23_6"></a><a id="Tc_MuYIZHUIOEaTTPB3uMlzIA_24_0"></a><a id="Tc_tkBa8oeiaEWvjwLhDG6k5g_25_0"></a><a id="Tc_wKzcMCEJ1EuBzz9EwDwE4w_26_0"></a><a id="Tc_xwE1za1L9kSxn1sUnriWQg_27_0"></a><a id="Tc_GJ1nO468UkKfu7a1OtWmFA_28_0"></a><a id="Tc_jKll9Pjybk6eCqxaU826ZA_29_0"></a><a id="Tc_-25U2GrHwEC2qIG9xcMw1g_30_0"></a><a id="Tc_9eHEVd3Zi0OdgopmyOP3Xg_31_0"></a><a id="Tc_HYmeHEwO4kOIDtsVxUiMwA_32_0"></a><a id="Tc_BPWVgxyyc0uuMmeSxdG3Gw_33_0"></a><a id="Tc_05sPOfh9FkOIEsISiWguSw_34_0"></a><a id="Tc_tniR-UiKn0uM5KfKlOGKQg_35_0"></a><a id="Tc_EYnj7ybcZEWkEn1d5C1wUA_36_0"></a><a id="Tc_hk_DcBbHJUKRZjDIHU1WVg_37_0"></a><a id="_1e6e3b45_b485_4272_b358_fdc1e9627717"></a><a id="_1e6e3b45_b485_4272_b358_fdc1e9627717_2"></a><a id="_1e6e3b45_b485_4272_b358_fdc1e9627717_3"></a><a id="Tc_cp-ob0CQqU2MqP1pQYt67Q_38_0"></a><a id="Tc_VFMJ3k6IXEavp4lya-GCsg_39_0"></a><a id="Tc_BoqHyJUgHUqzYnGVHjZLJQ_40_0"></a><a id="Tc_eu2wkLLgiU2tr7OlkvuYtg_41_0"></a><a id="Tc_hNWOEIdiN0eKgA4fhoT2Cg_42_0"></a><a id="Tc_JFLRwszWLEuou8G1TRpSOQ_43_0"></a><a id="Tc_rkhsnwrO5E2XTbXK7qMGqw_43_2"></a><a id="Tc_k1H3DI_3rEyxI__GKlYaIg_43_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:74.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:0.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.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:9.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;white-space:nowrap;width:2.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:1.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:9.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;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.42%;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.24%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;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.42%;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="2" style="vertical-align:bottom;white-space:nowrap;width:10.92%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;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.42%;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.4%;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:9.51%;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:2.35%;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.44%;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:9.51%;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:0.7%;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:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">CURRENT ASSETS:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_Bry55yRWg02my_8_Svxh0g_6_3">58,776</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_VommJjgX7kuE0rZhn3Y_3A_6_6">54,896</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Billed accounts receivable, less allowance for credit losses of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Narr_P9gErz_b_UW1rGT_w4W-vQ">8,808</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Narr_NrD4735Cik6YqxyeLrR_2A">9,087</ix:nonFraction>, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BilledContractReceivables" scale="3" id="Tc_UuafO6OArkSiFSKMzSRD3Q_7_3">773,716</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BilledContractReceivables" scale="3" id="Tc_tJGBveSWVUark-2Lo5HpiQ_7_6">619,544</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Unbilled accounts receivable, less allowance for credit losses of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Narr_xQ2lSeNvwEGGrJeCF9x97w">715</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Narr_KJuO5_wKI0amN9xau-d4vA">784</ix:nonFraction>, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_oY47X0HoDUmQql0j_CRWtg_8_3">61,881</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_XHTVUmNJZEyiTBOQOd6nQA_8_6">45,596</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Other receivables, less allowance for credit losses of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent" scale="3" id="Narr_ailH5m64KUeQJkBrCtqWAA">503</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent" scale="3" id="Narr_gtF1CaksNEC-pvHNb07zqQ">759</ix:nonFraction>, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NontradeReceivablesCurrent" scale="3" id="Tc_lwZfpjDcvkGrO53pkzcGvQ_9_3">57,491</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NontradeReceivablesCurrent" scale="3" id="Tc_pr3eNFPVZEmni0vhy0jOyA_9_6">44,212</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_lw_mrNCOUEy_QcZN7bdSVQ_10_3">21,853</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_btNaxB4aB02l1YWoX6nnWw_10_6">13,472</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Prepaid expenses and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_ywnKEgNGMk--2OFairCREw_11_3">23,704</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_oIPtzjd2RkSqmnALPTr7qg_11_6">15,510</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Costs and estimated earnings in excess of billings, less allowance for credit losses of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:CostsInExcessOfBillingsAllowanceForCreditLosses" scale="3" id="Narr_CfhFh22_OEy8J4-2ifkI9Q">84</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:CostsInExcessOfBillingsAllowanceForCreditLosses" scale="3" id="Narr_KNq8fqV4EUKg4tezNE-pCw">79</ix:nonFraction>, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_1Zwfw7RuQkimWQiWnPM9Xg_12_3">29,900</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_iFyBHhhH-0Guz76sBfXYcQ_12_6">18,622</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_n__i8njl1kmDurn5T7v4dg_13_3">1,027,321</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_zcVAyz1VhkaCsor_jYnzWw_13_6">811,852</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">PROPERTY AND EQUIPMENT, NET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_tGDI1xPav0uBwbBoFfpumg_14_3">128,554</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_7mGFip-piUeH08gzQrbVxw_14_6">117,206</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">LEASE RIGHT-OF-USE ASSET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_mQhPk5eTz0u-y8TNF-Wcxg_15_3">124,756</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_U8p4Uy6Jok6T-n0MaHnu1Q_15_6">94,727</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">GOODWILL</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_bnQ7DgmTn021zH5UwQ7OgQ_16_3">592,114</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_o6tWYqBSJUKZTlbKuTT8vA_16_6">464,392</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">IDENTIFIABLE INTANGIBLE ASSETS, NET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_MDcblYo-n0S5KsCT1_bW7Q_17_3">304,781</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_RYP1jgL95Ei236QUgo6-sg_17_6">231,807</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">DEFERRED TAX ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_9OOtjZa4x0meaWaMb0j82Q_18_3">22,905</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_LtnWN7MgVUylDpZHa-QtwA_18_6">29,401</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">OTHER NONCURRENT ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_RG16usGKaUylblRCUkr94g_19_3">8,683</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_k4k7rZO2C0iS3Sz9DU30xA_19_6">7,970</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_HsN-Ig-ZNEub6r7t5nfgwA_20_3">2,209,114</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_kFH-S1ANh0yU97axVVLSCA_20_6">1,757,355</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">CURRENT LIABILITIES:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Current maturities of long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p 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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtCurrent" scale="3" id="Tc_soknmzUp-0ug5uvmd1uwaA_23_3">2,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p 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.51%;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:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_D_kf4roSIEWC-HvnnxTukQ_24_3">254,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_SbJJg3wERUOhjMxZ9lXZGg_24_6">204,145</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accrued compensation and benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_umkVU35vm0etdvX2Cued9A_25_3">129,971</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_AMe2aCSi2EallKOCDvRpYg_25_6">121,864</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Billings in excess of costs and estimated earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_q3DDANibAkSjzyDgKh0awQ_26_3">307,380</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_YViqylf4XE2qzd9e3Gn4eA_26_6">226,237</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accrued self-insurance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SelfInsuranceReserveCurrent" scale="3" id="Tc_Hjx1mESPTUK8UY6qfMRI5w_27_3">22,227</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SelfInsuranceReserveCurrent" scale="3" id="Tc_gquvPV87FkahEuUpgh90ag_27_6">49,166</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc_mCTpdPgsbUOZhRmpGLJZ7g_28_3">119,400</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc_vuiv45fJG0C1nnouDzzEpQ_28_6">91,492</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_oV-IOFQIak6W-Geh8eeljw_29_3">836,554</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_fL3T_qan1k6xGqCSKynuSQ_29_6">692,904</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">LONG-TERM DEBT, NET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_LDOH7Pgph0uQhFwK36TkBQ_30_3">385,242</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_X9V8oApgqUWyMEBI6wA_NQ_30_6">235,733</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">LEASE LIABILITIES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_W89heMVnDE-cCY_D0lvDnw_31_3">107,701</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_7naD6Jv2Uk-od8GWp08g9A_31_6">80,576</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">DEFERRED TAX LIABILITIES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_OqiRif5ngUKjIu5NEjvV3A_32_3">1,745</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_56Jr09xnCUe-2Cpj0HhEVA_32_6">1,339</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">OTHER LONG-TERM LIABILITIES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="Tc_MCLEny3Zn0GMtiEyJqhttQ_33_3">72,206</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="Tc_O5Wd7RZyhUCwIqp6d-pojg_33_6">50,374</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_oEo5f8dD9E2a10F3LbQy_Q_34_3">1,403,448</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_W5BvfNoMukaeym7_B90ZwA_34_6">1,060,926</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">COMMITMENTS AND CONTINGENCIES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">STOCKHOLDERS&#8217; EQUITY:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Preferred stock, $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="Narr_Nb-GBFOC9kySZOMbuwwQcQ"><ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="Narr_DusyBIFWkEizhDzof2XhCg">.01</ix:nonFraction></ix:nonFraction> par, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:PreferredStockSharesAuthorized" scale="0" id="Narr_7NnXJnTDzEC7MAJpOserNg"><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:PreferredStockSharesAuthorized" scale="0" id="Narr_z9nUMr6QE0ebV3G4Fm-CCg">5,000,000</ix:nonFraction></ix:nonFraction> shares authorized, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:PreferredStockSharesIssued" scale="0" id="Narr_eZ_k8-dAzEKHsZZGBYQcjA"><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:PreferredStockSharesIssued" scale="0" id="Narr_OTIQU65ImUSmkyJ0XWhGNQ">none</ix:nonFraction></ix:nonFraction> issued and outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_g_ocsM_YeECjnxxZRGU3aA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_gx4fZnbk4kefI_SljoPrhA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Common stock, $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="Narr_4-o9shhOU0efFNffiiA46A"><ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="Narr_sD_WycMkW0Wk0LO1tDNPHQ">.01</ix:nonFraction></ix:nonFraction> par, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="0" id="Narr_EeW-yrNtsEWdabRy8SR1ig"><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="0" id="Narr_qTCaQ4817kiZ6ZtIOqMbOA">102,969,912</ix:nonFraction></ix:nonFraction> shares authorized, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_pb25ZaMuUEGOegmxnDY-rA">41,123,365</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_cV9Uc5fgYk2tCUFjkU-dkA">41,123,365</ix:nonFraction> shares issued, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_fo3_gCDxlEGpxU-L6eWcDA_38_3">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_63hYnjc-rEyY7FI4uOVf7w_38_6">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Treasury stock, at cost, <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" scale="0" id="Narr_nQ9jJXQzR0qFt61SUPNWMA">5,032,311</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" scale="0" id="Narr_phSfG1boDUue7CAipry7ig">4,935,186</ix:nonFraction> shares, respectively</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValue" scale="3" id="Tc_3VEtvFn41UuLz0q0A00eVA_39_3">150,580</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValue" scale="3" id="Tc_DDUT6bCj9kqK9PVkf0bGqw_39_6">129,243</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Additional paid-in capital</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_SeSQR56A6k-m-5WLvFqCWQ_40_3">327,061</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_cHstu1pKsE6qexhqoJJfZw_40_6">322,451</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Retained earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_TUv5VJZaLkajBXtIbiHpKQ_41_3">628,774</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_BsZ5gANOX0WSLdfjfr_Jfg_41_6">502,810</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total stockholders&#8217; equity</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_fZkC0ixwGUW4e9GQhTP2mA_42_3">805,666</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_kZalOmk7O0qILoUsW0-T4A_42_6">696,429</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:74.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total liabilities and stockholders&#8217; equity</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.4%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_yKTLdeP9UUaBvbF2aKURSQ_43_3">2,209,114</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_Rc1C9OjwkkyUmB17_FzBkw_43_6">1,757,355</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></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:0pt 0pt 12pt 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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">47</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.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;max-width:100%;position:relative;"><a id="_47c3ac5b_5145_4388_b1e4_67b2c20fb5e1"></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;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="CONSOLIDATEDSTATEMENTSOFOPERATIONS_39514"></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 STATEMENTS OF OPERATIONS</b></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;">(In Thousands, Except Per Share Data)</b></p><a id="_931ea1fe_1f94_468b_8636_6f85c8b0f2ef"></a><a id="Tc_C6YQSOlynEyF27mlNhm27A_2_3"></a><a id="Tc_b8kRj4wvCkmilhw5xszZxg_3_3"></a><a id="Tc_kXwkblNbakWA2c0s9LvHdw_3_6"></a><a id="Tc_9yW-uwoBwEi4OWuTmz9Mig_3_9"></a><a id="Tc_v1gkWFAcD0m65WlYKhqZfw_4_0"></a><a id="Tc_AZmD27d27E-xMkKRdR-hNw_4_3"></a><a id="Tc_gOczcoC6ik-TCeTk2Ra6AA_4_6"></a><a id="Tc_P9c7bWHKu0StSn_tkeeayQ_4_9"></a><a id="Tc_mezbt74TLEyfVrIlWRK34Q_5_0"></a><a id="Tc_adeUPXCm4kO5oUfBCSJFIw_6_0"></a><a id="Tc_5nZSLg2mPEClAoi8uQE3NA_7_0"></a><a id="Tc_grKYtjiwJEerkFlWpDSjuw_8_0"></a><a id="Tc_Z695hW6_q0KWoSQjTyr4tA_9_0"></a><a id="Tc_Cbo0PfzTdkGRmPHmOjlAog_10_0"></a><a id="Tc_n-VRTDEPdE6_MJyjMsDR8g_11_0"></a><a id="Tc_JlLzjMPn6kipTSjdjN3S9g_12_0"></a><a id="Tc_jcgU2CJ6eU6p3AViMZbaNw_13_0"></a><a id="Tc_t8fWYKgFMESWCqVJ-bVi-Q_14_0"></a><a id="Tc_vdUxVndgSUGL80aZ-JyHwQ_15_0"></a><a id="Tc_71vCtVTI-E-hwJy06rzVFA_16_0"></a><a id="Tc_hJM84A8oOk-yO_EVytR77Q_17_0"></a><a id="Tc_WE_lkTIks0Wa1yQVgkgYVw_18_0"></a><a id="Tc_90yecJUwtUKvvADWCx88qg_18_3"></a><a id="Tc_cCOPMaun1k-hfvvBqLYsFg_18_6"></a><a id="Tc_Hjl4arZIM0iivzdrDk0NjA_18_9"></a><a id="Tc_1aNlgzNMW0G_3rKt9_d5Qw_20_0"></a><a id="Tc__na5o1oei0SENQyOps40jg_21_0"></a><a id="Tc_UmxLOriGYE6742GB3zBqbQ_21_3"></a><a id="Tc_J0MVJg5Cokiloz-Vm2NCRg_21_6"></a><a id="Tc_VVE2xbjEqUKQ7sODfkPOUw_21_9"></a><a id="Tc_M56wRKrI0E25rK1Jvj9SqA_22_0"></a><a id="Tc_MtzGus4FmkCWAXxRxFwZtA_22_3"></a><a id="Tc_8vP_zM2jhEGg2PYOMm1p_A_22_6"></a><a id="Tc_7ILr_BnAv0y4LmQecWlZNw_22_9"></a><a id="Tc_2D1l2tigXky4d9QiE2Dk-A_24_0"></a><a id="Tc_wNuhWQywT0SfrtXD3blWAw_25_0"></a><a id="Tc_JisL5TSLXk6C9m8s0XynkA_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:62.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: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: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><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.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: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.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;white-space:nowrap;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: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.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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 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><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.49%;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: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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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:62.5%;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: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><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width: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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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:62.5%;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: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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">2021</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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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:62.5%;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: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><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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_JfBpCOaGek6aNaoVu9-zQg_4_4">3,073,636</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.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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_7sIETQu1-Uq0LSciWnm_Hw_4_7">2,856,659</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_aUKwlg5wxESD7Ev00iyD0A_4_10">2,615,277</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_Lo2eCdLbYEyQfMD7n6F8qA_5_4">2,510,429</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.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_RHXEu4LLoECCkr2Yw6C_Qg_5_7">2,309,676</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfRevenue" scale="3" id="Tc_yY3WTOoWb06zwYBCDH6WcA_5_10">2,113,334</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_5oTIsjg6YE68sphx22Sqvg_6_4">563,207</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.04%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_ODwj7oXh4EOV4rQa8OP32g_6_7">546,983</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_9ekrXBe4PkKLVh-ZKxI1nw_6_10">501,943</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_bTUW-8stSEGlKWUIHBACKg_7_4">376,309</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.04%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_lOZMXIVBC0-Hs9tF97sCQQ_7_7">357,777</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="Tc_oQJ9IimydUSM3dTED9xH3g_7_10">340,005</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_yOIuN4txM0qW5rBQGI7n1g_8_4">1,540</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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_pXhng2sGAkqKIWf1uFGtyw_8_7">1,445</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnDispositionOfAssets" scale="3" id="Tc_lMdDU_INiEyzWdPNJkT9Ng_8_10">1,701</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_yV6L4EFDJEmIKquc4n5XbQ_9_4">188,438</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.04%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_9qj_V8xJg0CFs3SVYPgcLw_9_7">190,651</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_qKHEiXq61k2qt5Invl6_hg_9_10">163,639</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_UvjZHj8FbUGSlXP7u2WB6Q_11_4">24</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.04%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_6ZUOyQUz5U-JOfcDoe2obw_11_7">103</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeInterest" scale="3" id="Tc_qgfDOOVgpE-8_mGFvB1QFA_11_10">224</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_47DuLV2_sUK9pzPTC1Az9Q_12_4">6,196</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.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_ootcd8QtPkW6lImyqmtqmg_12_7">8,385</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_grLVk4bI6EC7AluazjwXTg_12_10">9,317</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" sign="-" scale="3" id="Tc_wbLP4qR-XEuEHfov3LzQEQ_13_4">7,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.04%;margin:0pt;padding:0pt;"><p style="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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" sign="-" scale="3" id="Tc_aYy1rxr_r023HfC81GP4uw_13_7">9,119</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_NNj48VVPTUSUZGgrBxowiQ_13_10">2,991</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_OVuvVlxTuEasT2nXsNr_7g_14_4">188</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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_cgApQ_6BY0qns9wVbiIrTA_14_7">52</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="Tc_8PiKn8BUiUKtQtjhFFM5AQ_14_10">187</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" scale="3" id="Tc_wfiEOSfHW0uEj1R7QuJMQw_15_4">1,836</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.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" scale="3" id="Tc_jhH3vGCFx0-1VAAGgj3mRg_15_7">889</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NonoperatingIncomeExpense" sign="-" scale="3" id="Tc_lNoSa5BtqUyJhcxKcz794Q_15_10">11,897</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_XZOyiIU1B0qRRVNsdc7dlQ_16_4">190,274</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.04%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_2SgW-m97bUqImk8Wdn4Z1Q_16_7">191,540</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_VLsKOuCbPUCbQwONUj_b6w_16_10">151,742</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_8yB_t6d37U2MA06zt0Z3VA_17_4">46,926</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.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_nfRQdIEk3kCHotsZPMk65g_17_7">41,401</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_cqvBlhki2EaxJMTAWrpvhA_17_10">37,418</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_JI5oiOiZkEuC5nK1_CqE3A_18_4">143,348</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.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:9.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_uBuBG91Y-kSVJS-6dq4xwA_18_7">150,139</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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: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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_VkeL8Lumb0qo1Mni-up_MQ_18_10">114,324</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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: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><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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.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:9.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;white-space:nowrap;width:1.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><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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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.49%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_pq5bDu_ZA06M71mhM91X7Q_21_4">3.95</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.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.51%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_2qvsMzVVC0OvndgauR1KSQ_21_7">4.11</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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.51%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_-Co1iO0dI0qrDMmbTIjOqQ_21_10">3.10</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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:9.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_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_1zv04Wd1kUmfvnKFrvLm1g_22_4">3.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.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:9.51%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_mumVNUmqZkyW0eYR3hj7vA_22_7">4.09</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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: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.51%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_BV4r1v75rkCPJRLfC-RJpg_22_10">3.08</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;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.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:9.51%;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.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><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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.49%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_GpBomvHtFUWnQ01465JqZw_25_4">36,285</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.04%;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.51%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_v_NuumVJlEWHdm7PG-Vl6g_25_7">36,542</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_0Ofef9Zvvki_Ofv_Eo4TRQ_25_10">36,854</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.5%;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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_hVyJqiEzhEKocToTVSjSLQ_26_4">36,450</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.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_APonsir2C0-d-Z4gPnb_9w_26_7">36,738</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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: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.51%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_PyHUX_l6gk2q19oVq9LhlA_26_10">37,131</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></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:0pt 0pt 12pt 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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">48</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.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;max-width:100%;position:relative;"><a id="_d08b4ec6_3355_4a7c_8d18_0d07db54a040"></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;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="STATEMENTSOFSTOCKHOLDERSEQUITY_511143"></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 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 12pt 0pt;"><b style="font-weight:bold;">(In Thousands, Except Share Amounts)</b></p><a id="_b049b0aa_df0c_4739_a857_fa67f3ebd42f"></a><a id="Tc_c_AE9h99JU2-2QPZjVK2Yw_1_12"></a><a id="Tc_9xDMPweTgE2k4ql_wstykA_1_18"></a><a id="Tc_DHy3VZurZE2gQmIAIT3zHw_2_2"></a><a id="Tc__9fDOdTGaU-vyKLeYpN8jQ_2_7"></a><a id="Tc_kewrWXmYSkWrd8-X4tnzFw_2_12"></a><a id="Tc_5ELeUUTeo0-6kE8kGps4XA_2_15"></a><a id="Tc_lvWRYL3ChkSE9s4_Qeo06g_2_18"></a><a id="Tc_zx-l7IMyPUe1XjkFoH5hvg_3_2"></a><a id="Tc_3rggyGDbHU-nrCxyLo2UIA_3_4"></a><a id="Tc_9r-RWMI--UOuImBI6fD1hw_3_7"></a><a id="Tc_QjfL71D0XkuC0KxXQtZmFg_3_9"></a><a id="Tc_cTFzpUYvvUuz7NmLqk5Smg_3_12"></a><a id="Tc_S4qzwSAt3UqWKaEcx0Q3Aw_3_15"></a><a id="Tc_TJv9vYwL1Eqr_0ol-PjP7w_3_18"></a><a id="Tc_PpUgBCKKykuGWyENwQz_TA_4_0"></a><a id="Tc_gzacMJSC0USzxq-T5wt7qw_4_4"></a><a id="Tc_hTy_pr9LbU2ijszm3fDr0g_4_9"></a><a id="Tc_ncX0Phnm80W_Fzft66ZNrA_4_12"></a><a id="Tc_kSINSRycAEK1RkWLAyI9nQ_4_15"></a><a id="Tc_g6h1eFwhhkyDFB4C8eg7RA_4_18"></a><a id="Tc__wyLekmHC0CssC0CLb9YFQ_5_0"></a><a id="Tc_U9HUHkOojkWZmRzJ6gxhkA_5_2"></a><a id="Tc_QCgBYFFmcUCAxsP7M5GWsQ_5_5"></a><a id="Tc_cV15C-L8BE-Kk8FOd7p_Qw_5_7"></a><a id="Tc_Ba4e_B2lHkGDt2JdTiKFlw_5_10"></a><a id="Tc_y9iNueteh0CYYNcJWF_a-g_5_13"></a><a id="Tc_X2lc00fD3UyCWvann0X4JA_6_0"></a><a id="Tc_80tJcvVZ20O99dhXNGK_JA_7_0"></a><a id="Tc_UA7YvPe6NEy-31cc6wWVXg_7_2"></a><a id="Tc_ZRQ1gv_hsEaVchAa9A4hqg_7_5"></a><a id="Tc_3hrxqy1Nd0C5No2H0K8y6A_7_16"></a><a id="Tc_5tAwJYZcfUyXsGUtQwRGxg_8_0"></a><a id="Tc_XtkN4I0ae0WqXTtxfJqvgQ_8_2"></a><a id="Tc_YjSsKmibwU6HETWdUpNVgw_8_5"></a><a id="Tc_BhYc37rX1kOMGAT6lIvYfw_8_16"></a><a id="Tc_kKThy0w_YEC9PWVtSanXjw_9_0"></a><a id="Tc_SG5EB7ZaukySzy1G3iUdaw_9_2"></a><a id="Tc_eYL-Rc7aUUWP9knB6yjXMw_9_5"></a><a id="Tc_BfLnGHf1kk2yJSs3OUP6CQ_9_13"></a><a id="Tc_bX9B3qQ0xEax4PeR1mXAjQ_9_16"></a><a id="Tc_zJ9c9S__gEybqaulPbACjQ_10_0"></a><a id="Tc__su4wZcq2E6Z2uycoFeMOw_10_2"></a><a id="Tc_gW6Zb4JVWEmZCLwdvosmJQ_10_5"></a><a id="Tc_Hr1GVfZMJUmOlFU19Fsr_A_10_7"></a><a id="Tc_4MCQBmI_iky70smPMeC5tA_10_10"></a><a id="Tc_-N7AR-4dhkOst8Sn2xHjdA_10_16"></a><a id="Tc_lYKbK_tsW0ySDrz935V4ow_11_0"></a><a id="Tc_KO5UPrTKVk2-gc44w0EBtg_11_2"></a><a id="Tc_kvWlM8ImR0evipS-spOSFw_11_5"></a><a id="Tc_kbcjRgsnwEqVDBsKa3nbtQ_11_7"></a><a id="Tc_kOtgu1HMcUeGuwlcPJACxg_11_10"></a><a id="Tc_1uHbcyFR9UynZPYj9dQztw_11_13"></a><a id="Tc_CGWlYnVDGUejWdMcDJPG7A_12_0"></a><a id="Tc_vMhRGEUBjE2ViW5cr8S3VA_12_2"></a><a id="Tc_Vc0RYaljzEq1Y5sATK8H5A_12_5"></a><a id="Tc_AGZ6dB2mRU65gEzfMC1dVw_12_13"></a><a id="Tc_PiswA4AdfkeSdwRcsefnkA_12_16"></a><a id="Tc_VFUVXy8Gdk6P0D91MHWUdA_13_0"></a><a id="Tc_grlEbxxa_021ZnA6H1gIsw_13_4"></a><a id="Tc_lyZRPJUsakCcWSsbGNC3kQ_13_9"></a><a id="Tc_neOZmIu8PEqukl8kzoBCMw_13_12"></a><a id="Tc_8fVjfQZGdEWJi6xJIP-oCA_13_15"></a><a id="Tc_raYN3I8R4E6RfMI0BDOaEg_13_18"></a><a id="Tc_g6_vWr9q-0WYJMFylhqDDw_14_0"></a><a id="Tc_jLQFER5seUy3BoDSmtisBQ_14_2"></a><a id="Tc_33goLOIW7E6SkxrpcLwm9Q_14_5"></a><a id="Tc_tDV51dTfnUyykZqCPL97xg_14_7"></a><a id="Tc_R2ME2mljrUqv4gup_QXszw_14_10"></a><a id="Tc_m24y3UUBcU6NFFyRyv8E_A_14_13"></a><a id="Tc_F6CQl_613ES6Aeq6GdfWWA_15_0"></a><a id="Tc_xn_Csg9pekOq-mMgbRKBeQ_15_2"></a><a id="Tc_gmTZ_1Kih06Tr2WXs6XQ9A_15_5"></a><a id="Tc_XcJl1QeL1UagoEK5GJzaMQ_15_7"></a><a id="Tc_a0FOjCwBJUeOxWlboDkFNA_15_10"></a><a id="Tc_BqKHdrvsl0iQzOodjf5CuA_15_13"></a><a id="Tc_IMZzYznKOkSZWZfU3wZ8nQ_16_0"></a><a id="Tc_jYgqSUU1YkW9WjiU9DcI2w_17_0"></a><a id="Tc_KZ5EYFYxNk6FJT1G4YC1dQ_17_2"></a><a id="Tc_v-KoTBuJFUuw_mW1C314Iw_17_5"></a><a id="Tc_u3ywImtTtUqmNh7GerjW7w_17_16"></a><a id="Tc_sm0MrzT9zkyo5rIRn1UPwA_18_0"></a><a id="Tc_xeJG-EQ8Dkex5LFQ8Jgrdw_18_2"></a><a id="Tc_cGs4xEuDtEa_as4g-pajKQ_18_5"></a><a id="Tc_DxBEKghj-EyoiWLTRwAH7g_18_16"></a><a id="Tc_qLJdSyciukim_lkoDFpz_A_19_0"></a><a id="Tc_7z_e6c3s90C9ISG-a2g10A_19_2"></a><a id="Tc_yuNJcEPbaUqX_gHNCsyrnw_19_5"></a><a id="Tc_JzmMRGKtE0yWPxepP4FgBg_19_13"></a><a id="Tc_bOdpn9eJiEeSt4PcVMcHjQ_19_16"></a><a id="Tc_l9YyrgNhqUyD0hKNnL3BzA_20_0"></a><a id="Tc_8CDAqQRsBEavpjTc45q4VQ_20_2"></a><a id="Tc_6EnlKcqgEEeVcxwHOSDL_w_20_5"></a><a id="Tc_WWS9bA8M80SYQ5cVGs8Lwg_20_7"></a><a id="Tc_ftmwmGmq_UCUlQdwtvpudw_20_10"></a><a id="Tc_yRI2d-AG7UCBfTu-joPWqw_20_16"></a><a id="Tc_4Rmo6jeQSUyjDKEYaARb6w_21_0"></a><a id="Tc_uvfc8nz0c0qsxkrnBymIQw_21_2"></a><a id="Tc_prX1g-SQi0yMRJg3Nt9qZw_21_5"></a><a id="Tc_ag6FmvKzu0SYaGr_ERuBmA_21_7"></a><a id="Tc_WdJ_bT7c6Eat1oSmQpqWuQ_21_10"></a><a id="Tc_ve4nYoqrH0KfZ52crfmDbg_21_13"></a><a id="Tc_yzO4HQFKL0mpWcTERte-xg_22_0"></a><a id="Tc_AtQtnmrBv0uv0LWHAhUzkw_22_2"></a><a id="Tc_NpFh5sRlPEeC0QZAp2jMVw_22_5"></a><a id="Tc_0E6Y8bxqPkae5dGu1Vrn2A_22_13"></a><a id="Tc_vq-cTmSDuES2g3liRylpJg_22_16"></a><a id="Tc_cb8xSKrPYkWmiL_CCwPX3Q_23_0"></a><a id="Tc_udsjH3x-G0WYw79INzTpbg_23_4"></a><a id="Tc_6JEQWV9TWkiDJd8xwXjz2g_23_9"></a><a id="Tc_b3DEN_HncUCnPwGifzcNyQ_23_12"></a><a id="Tc_yFMmWoWdUUWkjuC0B0iZdQ_23_15"></a><a id="Tc_M35mr3eh3UeCcDqfq89yIg_23_18"></a><a id="Tc_oJjAQygto0CDu9XFiRFDUQ_24_0"></a><a id="Tc_Wav6VrfQ8UCLuMvOOXqGMQ_24_2"></a><a id="Tc_1C8n_DsJtki3WZC-E5W6Xw_24_5"></a><a id="Tc__bv6FDFLa0eMji6L-IiODw_24_7"></a><a id="Tc_bkZYotd8A0-YHH9ka2-cbg_24_10"></a><a id="Tc_AJ0bb46g0kqn99lQTQoSOw_24_13"></a><a id="Tc_wyL-uO9DYkiH5Spu8DX_yw_25_0"></a><a id="Tc_x6JQHL9QA0eaizzO9A1K6Q_26_0"></a><a id="Tc_SaRfQRFFRke63wefnNc9sA_26_2"></a><a id="Tc_c_GhlgALKEWelCsEzV7xjA_26_5"></a><a id="Tc_I5vM0lKNJkus6a2EMW2eOg_26_16"></a><a id="Tc_pm5droaUI0y7kBcoNo4WTg_27_0"></a><a id="Tc_j-3BDWYUqEixd9LfVJYzmg_27_2"></a><a id="Tc_BwUSh2t81E2djxoR7djBpw_27_5"></a><a id="Tc_oEuUtSizu0uHEhOqiYZccg_27_16"></a><a id="Tc_oPQpuSy1UkeinHpNU5c1dg_28_0"></a><a id="Tc_6Qc23DyWX0mIFgG7-e1aIQ_28_2"></a><a id="Tc_Gj4Dkli5802oGjsWtUWbsw_28_5"></a><a id="Tc_MkUbWLuZB0Sp0BATXn1nHQ_28_13"></a><a id="Tc_P6kV9y5tG0Oe1JgfpLdEDQ_28_16"></a><a id="Tc_xfBZn7KOY0mHt2TLeqF9lQ_29_0"></a><a id="Tc_B8AEdcB5w0m-vbiOGdc-pA_29_2"></a><a id="Tc_C6cgonCJvESE7vj07nnvKg_29_5"></a><a id="Tc_GiZqabYlTUSwCoq_5Lks1g_29_7"></a><a id="Tc_PHdJpWfn9U60g3F0ROvZqw_29_10"></a><a id="Tc_VteEQm-dGkG2X5cbwia4AQ_29_16"></a><a id="Tc_DQu9vKAcJkuruU91fTWz0A_30_0"></a><a id="Tc_mUDUoBK3KE6-gVYtwjTbVQ_30_2"></a><a id="Tc_b0mKkQ2tXkulaKBLNzlMmA_30_5"></a><a id="Tc_WbkCvDzuw0OBll7HpprHMQ_30_7"></a><a id="Tc_pzny4nBB_0KCBdNmqTHKkA_30_10"></a><a id="Tc_OrVHMHXYW0Kf21u6YuP9nQ_30_13"></a><a id="Tc_WfKNEGqDG06RVB0KCj3h4Q_31_0"></a><a id="Tc_zN_Enr88w0O9tnjPdTj-LA_31_2"></a><a id="Tc_2-5yw8BG8UW-J9X07fNaAA_31_5"></a><a id="Tc_T9WphUZv1kG6DxkfQrFFRQ_31_13"></a><a id="Tc_WydzJY7svkK9VzxeRHi_Mg_31_16"></a><a id="Tc_GwFiLV8YBk6uCXblGS0RWw_32_0"></a><a id="Tc_tqdwhTWVp0KFj_YJ9WaHxg_32_4"></a><a id="Tc_bbAScR8iYUWagbxFJjx1cw_32_9"></a><a id="Tc_bw4ccNH08Eyy5teq_clp3g_32_12"></a><a id="Tc_T2K8FvDySUuLLiBSvjOOdw_32_15"></a><a id="Tc_JorJBvHKN06sXKnsIz4SVg_32_18"></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:41.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:1.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:7.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:1.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.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.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:1.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:7.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:0.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:6.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.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:0.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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:0.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:5.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;white-space:nowrap;width:1.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.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:7.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:0.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></tr><tr><td style="vertical-align:bottom;width:41.96%;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.44%;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.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;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;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.09%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;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:6.58%;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.44%;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:6.26%;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.44%;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.49%;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.36%;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:41.96%;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.44%;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:13.83%;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.44%;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.27%;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.44%;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:6.58%;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.44%;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:6.26%;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.44%;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.49%;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.36%;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:41.96%;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.44%;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.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;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.05%;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.44%;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.09%;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.44%;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:6.73%;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.44%;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:6.58%;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.44%;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:6.26%;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.44%;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.49%;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.36%;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:41.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2018</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.33%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_XqvYeOnBZUijKZF4faPuQA_4_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_2maOQM-RlEKvLIUGBEF8Wg_4_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" sign="-" scale="0" id="Tc_wpzHIGabkU6XOKXsbCV6bw_4_7">4,229,653</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_-tHWCzNMGECsdqKkyFZVrw_4_10">87,747</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_TtB2KgWAbUSYEJuZo5jLyw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_bIKz0zax00C9xHBpCsTHKg_4_13">316,479</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_g9pCif2xtUinDsa9OmkIKw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_bKvL9hDVeUCjFMlpxOIqAA_4_16">268,904</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_hcYgsJNWekexn_G_o4zBeg_4_19">498,047</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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.44%;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.09%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_Ez664UnG_UCda_iCGxB6iQ_5_16">114,324</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.16%;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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_oEnrY_ZNX0msZ0--RcZGXg_5_19">114,324</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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.44%;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.09%;margin: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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_QMfMJScPGE20Pp3Eoh2hbw_7_7">114,125</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_zBwWN3yOkEKXo0KMkDUuSg_7_10">2,532</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_JIW2TtkVTk6IglAXgljibQ_7_13">182</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;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.16%;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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_wwlU2IAOkUyvSKhkudXKcg_7_19">2,350</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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.44%;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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="INF" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" scale="0" id="Tc_mjRO7fxda0eCRMJFhRlrxA_8_7">107,606</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_jJeRUN1_ckuN4lb0jv8i8A_8_10">2,303</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" sign="-" scale="3" id="Tc_vWgmhv6sAUO4pDMK-bSkDg_8_13">297</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_4i9B1a3_T06mT33yk5TbLA_8_19">2,006</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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 payment on vested restricted stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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.44%;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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" sign="-" scale="0" id="Tc__re7zgDkg0i9SEl4Id45ng_9_7">28,586</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_aMdpUZPJz0Sx-tixg_9B9A_9_10">1,498</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_4RAgsMx24EK2s1KyQUUfIw_9_19">1,498</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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.44%;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.09%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_HOFjP2SD4UWchT0x5OgR3A_10_13">4,168</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_qRFzLdaSi0-L10DRxKGYew_10_19">4,168</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_RllsGhdPSEix9IwRs4jHNQ">0.395</ix:nonFraction> per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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.44%;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.09%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_C5DeuFMfXkulO10Z88JqHw_11_16">14,543</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_GEy8QpXjKUymZEjCG1VKQg_11_19">14,543</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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.44%;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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" sign="-" scale="0" id="Tc_E83SUzL6uEm5r_-WDIiAxw_12_7">428,940</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_d5FjRI7leUOd4SdMKqWk_Q_12_10">19,550</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:5.54%;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.44%;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.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_nnf2TER2D02DuQYgsXqzdA_12_19">19,550</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.33%;margin: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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_SyULfPVM6UCcIeHbECtT6g_13_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_EQJBtC6M7UeSH6kPecM8zw_13_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" sign="-" scale="0" id="Tc_0BuFnRBSjEG7RC0r1Mvhsg_13_7">4,465,448</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_hjJp-W0b90yyAV8KW-3nrA_13_10">103,960</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_3ZMHZXUKbkKjuqWon5IuCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_19QsBAGgVk6fP-X2tuLCwA_13_13">320,168</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:5.54%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_28u-wZbMN0ybX624baJDcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_4R-U8sDBsEOj2FBHxGk8_Q_13_16">368,685</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;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.16%;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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_M9KvFimHhkmIjU7Xe-zbKQ_13_19">585,304</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_2y07w1K0Uk2gIafA-kIVTg_14_16">150,139</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_ULnrvwtnxkKGCccaeiBTtw_14_19">150,139</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 0pt 12pt;">Cumulative-effect adjustment (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ejq1fDLKfE2zYdVu-X7maw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Y__R5xiI4k-JYvhsJqRDtg_15_16">515</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember__WriG1u5eUelXYKaXjjxZQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_kcqHWweeZkeGocKZTMCr8Q_15_19">515</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.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="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;margin: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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_TJFS-fQQsEKbkBtalMbJQg_17_7">113,731</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_sRSbbdbUS0GJRu0h-wYdgw_17_10">2,811</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_AU6pZDbp4kaogDKXvZOtEw_17_13">667</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_EIz_u8Gni0SOU7bxIaa5zg_17_19">2,144</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="INF" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" scale="0" id="Tc_wMX4n9rNyUWa7UZoSobsvQ_18_7">128,889</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_OoYyfWGOk0icoxO-9bscUg_18_10">3,102</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" sign="-" scale="3" id="Tc_WhBbcfjxP0i15KL9xbtU-Q_18_13">1,247</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_1bpzRM3Ho0iFb5GpPWwxEg_18_19">1,855</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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 payment on vested restricted stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" sign="-" scale="0" id="Tc_XkT4b3-YV0yT1YKOdd7hQg_19_7">27,724</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_PxrBCADhMUeDS2i9zWXmtQ_19_10">1,076</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_znAX_BCCjkuL9ewHlD2rNg_19_19">1,076</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_IZKLJwZE5kmSj095Ez_z9w_20_13">4,197</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_QsuRMzAim0CFqs5t5Ko2QQ_20_19">4,197</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_KKB9HhTkQ0WcO4W8BKXK5w">0.425</ix:nonFraction> per share) </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_vWpyH7zqkEOYx-fEXRE0XQ_21_16">15,499</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_FNFX1_GqTEmnrzgqMJJV4g_21_19">15,499</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" sign="-" scale="0" id="Tc_KbpfhP6aXEeoP7SNXb-0tQ_22_7">684,634</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_0y_xBFKBDk-AcQBBMW1yGA_22_10">30,120</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.54%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_se4s_WY5MU2jnlJXWEUcog_22_19">30,120</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_zq96UghXa0a_zP3de4Mkiw_23_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_MMhw5mTaJU2XfXh9PxKcrg_23_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" sign="-" scale="0" id="Tc_I2zVVP_QD02XlGZQ0vwkUw_23_7">4,935,186</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Dmbuha1jhE2nfR7kcQgU-w_23_10">129,243</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_rbFz2HkyIUmBi3TvgjLIUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_iboNHXokCUaN2r4s1nV3-w_23_13">322,451</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:5.54%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gvJg1FFo30G2CGat9dSB7A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_BzAGIdM-AkSAT4aCdX6Yfw_23_16">502,810</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_YWignTN-rUGtNjWluDTAfw_23_19">696,429</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc__ycdS3BkgkiPnbpkSpTO0w_24_16">143,348</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_rM4KKbr0YEegtJSm3UVnBw_24_19">143,348</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_Fg6G1OU_4USvRecLkjAY-Q_26_7">195,724</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_-uedQRok8U-wYHIvfx0Hww_26_10">5,399</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_M8ciIZRteUS-OVT08mpYIg_26_13">235</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_UqbzR8eP40mO7VCkHBhrhQ_26_19">5,634</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;margin: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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="INF" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" scale="0" id="Tc_F0XhNrJWdEuh7l44xK-zsg_27_7">101,360</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_bXxdqtxEPEWsBs2BVQbZWQ_27_10">2,681</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" sign="-" scale="3" id="Tc_SUO4xl4O5kiWYnMF3vA-6g_27_13">473</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" scale="3" id="Tc_ysGnkXm21ESGk04ArCfceQ_27_19">2,208</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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 payment on vested restricted stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" sign="-" scale="0" id="Tc_OJMnvL8i8ESK1CetNsuLAA_28_7">31,413</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_PkPbLmFzYEWrjuXxgStOcw_28_10">2,363</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_YnHxi2rKpUyChXj9yx7mtQ_28_19">2,363</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_Qepv61-QcUCFCElLKWEhGQ_29_13">4,848</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;margin: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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;margin: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_Kw6B1cou90y-euROsfXg6g_29_19">4,848</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="Narr_EF7RuI1S3kKwF2hvrECrBw">0.48</ix:nonFraction> per share) </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:6.01%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:5.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_-e8I7HkKV0KE3rybA9ug6A_30_16">17,384</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCommonStockCash" scale="3" id="Tc_HrxEV4v_kUKymOEbeUZzfw_30_19">17,384</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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:41.96%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;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:3.95%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" sign="-" scale="0" id="Tc_nm25PHyBrE-75zFCUFS1gw_31_7">362,796</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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.01%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_pok3qL14AkOWOH2YlypdKQ_31_10">27,054</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;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:5.67%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:5.54%;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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;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.33%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockValueAcquiredCostMethod" scale="3" id="Tc_57YLQ6RolE2mUA22MCd6rA_31_19">27,054</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;margin:0pt;padding:0pt;"><p 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:41.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;">BALANCE AT DECEMBER 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.33%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Tc_H2uo4vy0cUm41Z3Irwuifg_32_2">41,123,365</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.1%;background:#cceeff;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.95%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_MuJFjyHtpky0MswuqOcOCA_32_5">411</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.09%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockShares" sign="-" scale="0" id="Tc_2MNl8NVNcE29icXoqvpZdA_32_7">5,032,311</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;background:#cceeff;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.01%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Aq0O1aS7U0WlHfIhk_iPmA_32_10">150,580</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.9%;background:#cceeff;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.67%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GDm_X5w_JkOWpnLGDap6pA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_LI4M2gKpAU2tB1F8LVbbnA_32_13">327,061</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;background:#cceeff;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_nngfx7WNNUSuh314z2prEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_9Be-XN54BEG0PFDUYF7tWA_32_16">628,774</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.33%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_xYYapzcSGkeKI7dmGU57Mw_32_19">805,666</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.36%;background:#cceeff;margin:0pt;padding:0pt;"><p 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;">______________________________________</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><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;">Represents the adjustment to Retained Earnings as a result of adopting Accounting Standards Update (ASU) No. 2016-13, &#8220;Financial Instruments &#8211; Credit Losses (Topic 326),&#8221; on January 1, 2020. </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;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;text-align:center;margin:0pt 0pt 12pt 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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">49</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.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;max-width:100%;position:relative;"><a id="_8515c78f_4dc4_4591_986f_f4f7bdb2fb7f"></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;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="STATEMENTSOFCASHFLOWS_915327"></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 STATEMENTS OF CASH FLOWS</b></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;">(In Thousands)</b></p><a id="_6806664a_40b1_4be7_a781_77932f98c4bc"></a><a id="Tc_D10FrErBpESClJhWHr0g9A_2_2"></a><a id="Tc_-8WnZl2p2U27sGcgzo54IA_3_2"></a><a id="Tc_gZk3T5fzckynNcrj3pN_Fg_3_5"></a><a id="Tc_uiOn7Kd_OU2Tt2Z7pQSFjg_3_8"></a><a id="Tc_EIHznpgLKU2stkwJCr3wZw_4_0"></a><a id="Tc_pL8RkChvhUilhdcXjlzhQg_5_0"></a><a id="Tc_C0t_Kc5z10OjciyhplZP3Q_5_2"></a><a id="Tc_KDmNwPq1rkKNjYmfFdmFGA_5_5"></a><a id="Tc_0KcCFJZ41EeIDm8Gy0UrYA_5_8"></a><a id="Tc_OAXdOBLmC06Ksr7t0hveRQ_6_0"></a><a id="Tc_PyQXGMexvk6Z2KglBpFQ0g_7_0"></a><a id="Tc_1siEmTs_f0mduSqyhOlLhA_8_0"></a><a id="Tc_vTtfl3lYWUa2IVCQg0k5zQ_9_0"></a><a id="Tc_wb45IrG2lEm6DlRFeAxe8Q_10_0"></a><a id="Tc_Cp8RAeGpN0ylRaiiNj5toA_11_0"></a><a id="Tc_74JFuuY_mkmFekls6rlDXg_12_0"></a><a id="Tc_3FlFA60w70eBN5BkFD_rxw_13_0"></a><a id="Tc_auixK9z-W0ezj-A7PrZQZQ_14_0"></a><a id="Tc_P8ZN47FgIkqJzyt_2_A4PA_15_0"></a><a id="Tc_yFlB4Eg9QEWf5r398Tv_8Q_16_0"></a><a id="Tc_LkSMrpsuf0aEjszJRS-9SA_17_0"></a><a id="Tc_u7ysfT6Q2kmq0PVeYlz8Zg_18_0"></a><a id="Tc_HhzkXtP0A0mnDv6aVYdbcA_19_0"></a><a id="Tc_u-uCZVwm1kusdHyLweg1AQ_20_0"></a><a id="Tc_BG6flYjOGUqpx1s8Oij7hg_21_0"></a><a id="Tc_Arj9x6s3p0-FAzItOmOgxQ_22_0"></a><a id="Tc_SyetsSdT-kSJrRtb4VbXWA_23_0"></a><a id="Tc_wKrfeXs9NEGA_LZ14lmHgA_24_0"></a><a id="Tc_At3OpedAb0CJcIA466Eh9g_25_0"></a><a id="Tc_G3ZvzO9Nc0KiefxfzGqQyQ_26_0"></a><a id="Tc_kPLp2i3BrUWerUwopxH-SA_27_0"></a><a id="Tc_T_gxkSwT6ke-VS1iJS5Zhw_28_0"></a><a id="Tc_c8Vm3heA_0iDWWiArpd13g_29_0"></a><a id="Tc_W7VL5CsmHUqxDCIjMk4-kw_30_0"></a><a id="Tc_EN70T5WxuUeAvXrYQJwOfQ_31_0"></a><a id="Tc_dcrxXz6XnUCkkApTxh24sw_31_3"></a><a id="Tc_RjHGw4rUQ0i-wXZOuyg0yg_31_6"></a><a id="Tc_E2BwX_dfq0-FhsNJLDSllw_32_0"></a><a id="Tc_F0-Ny0YpC0WNlm9Hyuvu5A_33_0"></a><a id="Tc_YwiqWWmmYEyMwcTZyZyPNA_34_0"></a><a id="Tc_czG80K6iTkqGTPcI9Re1vg_35_0"></a><a id="Tc_vpOwVMj2Z0mjA9tKNg1h5A_36_0"></a><a id="Tc_X97kyBaZVkqWaVtY21BBWA_37_0"></a><a id="Tc_3M1iAy-_40qWOMbY_TeYcg_37_9"></a><a id="Tc_q3ewyFS63EeCsHSLqo6L0w_38_0"></a><a id="Tc_0RIa1GoOIEyVSpj5F0UYHw_39_0"></a><a id="Tc__64Fs8aAH0K_QPIDB3O7Ig_39_6"></a><a id="Tc_-N3mNr8GpEChN7WW7E0KmA_39_9"></a><a id="Tc_OxaPI9U0EkWLL011x4fgsA_40_0"></a><a id="Tc_1S1sF5mzuUW_wW1tjAqvUw_40_3"></a><a id="Tc_exh0VIl3TEmRU0DQspQXQQ_40_6"></a><a id="Tc_I17sl8nQIEuNYW_EmNj_2A_41_0"></a><a id="Tc_nIrJ9s6FGUubiJRkjoaiag_42_0"></a><a id="Tc_UTI3bPQhl0CTCyxpkmqIFw_43_0"></a><a id="Tc_qYWK90yT90WXKH_ILCzAQg_44_0"></a><a id="Tc_er4zI-x-eEqGRt_Vx3KIkQ_45_0"></a><a id="Tc_SoE3cch1MUWioW_rM3XQVg_46_0"></a><a id="Tc_9kqktaqL0E6-hjm71EQAXA_47_0"></a><a id="Tc_deTivsmK70KaFAbetyAU9w_48_0"></a><a id="Tc_LxqFhGmdpUm854elQpTTAA_49_0"></a><a id="Tc_4Pj6CQvCE0CYRnEhj8C5IA_50_0"></a><a id="Tc_QDz3Y4hulEmCcqI12G-vKQ_50_2"></a><a id="Tc_mSYfRTsUJUue3Md2QZoQtw_50_5"></a><a id="Tc_8Yi0Cj644ESzhgt3t0yFYA_50_8"></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:68.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:0.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:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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:nowrap;width:1.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:7.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.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: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><td style="vertical-align:bottom;white-space:nowrap;width:7.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:0.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></tr><tr><td style="vertical-align:bottom;width:68.47%;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.83%;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.92%;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><td style="vertical-align:bottom;white-space:nowrap;width:7.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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;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><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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><td style="vertical-align:bottom;white-space:nowrap;width:7.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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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><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;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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.83%;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="8" style="vertical-align:bottom;white-space:nowrap;width:29.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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:68.47%;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.83%;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="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:nowrap;width:8.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;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.78%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;margin:0pt;padding:0pt;"><p 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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_asI97pcZzUOQeJ8ptooIOw_5_3">143,348</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p 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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_ziq0qfsmu0S0QdwVa2vXCQ_5_6">150,139</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p 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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProfitLoss" scale="3" id="Tc_PI-VDGvsaU6HSUNZVUXDkA_5_9">114,324</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_1Ho0T1OxdUSis9ZKTECAUA_7_3">40,505</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_1RV696KRNU-deEpKg_cztg_7_6">32,698</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_6uRuFp1z30GgOp6tPGhPEw_7_9">27,082</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc__Hy7DCW6HEymvwBSuuBEPw_8_3">28,439</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_Q2Oa5u1BAUi0CRMNULgb3w_8_6">27,931</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_Vti5MLsMCUal8-gx2Uqh0A_8_9">24,490</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ChangeInRightOfUseAssets" scale="3" id="Tc_icZpjgFL0EiQ0PrUMRzCQQ_9_3">17,592</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ChangeInRightOfUseAssets" scale="3" id="Tc_s0-Gf7kZN0qrvXxmmIHpcg_9_6">16,692</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:ChangeInRightOfUseAssets" scale="3" id="Tc_2uAM3HeygEC-ug8nJ_Qibw_9_9">16,887</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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 (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" sign="-" scale="3" id="Tc_-4QmKLBh50azfWb7mjrAjg_10_3">1,452</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_psvKSuDC9E2WiFia9ENfzg_10_6">5,253</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_cWclZWwpkkuQxjSueShQRQ_10_9">2,978</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_uxdpzEKdgEuwcOtK7YOIQg_11_3">6,902</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_HT250cb9wEyj_ORZgFeptw_11_6">7,953</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_bQu9uWiwy0iVBKSWUM1ABA_11_9">4,251</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="Tc_P9VbXe_1-EKckMzM4QHw9Q_12_3">538</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="Tc_atSje2OJRkiMIFGgFF-KJQ_12_6">544</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="Tc_6ByMuDRv5ESr_PpSmmz8Jw_12_9">387</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="Tc_KFB24f4LiUOXs3xlRpmsTg_13_3">1,540</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="Tc_7HuHnrqkUEuSIL9-Pfs3ew_13_6">1,445</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="Tc_qoOh5cDFqEier6exrqQCHg_13_9">1,701</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" sign="-" scale="3" id="Tc_GfEwmEOXcESP8V06BagpUg_14_3">7,820</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" sign="-" scale="3" id="Tc_imTTpg2EMUe_vfznCI1Orw_14_6">9,119</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_aMYgzlKrS0KUi1rqYRppMg_14_9">2,991</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_6huBm7W980OudCjU23J2IA_15_3">10,593</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_5qBCxhN5-0-BqlzhUMNjAw_15_6">6,934</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_LgySlW2ry06rWDCup3wlqA_15_9">5,878</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_YNRRtvIcKECVXEpEsxy1rQ_18_3">58,046</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_OXf2CP0IVke8Dn6h0CXesw_18_6">38,486</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_qh-a3ScGXkel2rmlKIe2-A_18_9">49,508</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_aEI5_znzYEi1_bX-65cdMA_19_3">5,651</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_kBpaF5Wxg0uW44SnfioQog_19_6">1,457</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" sign="-" scale="3" id="Tc_1-OpBrGJwEKl-3hrRRfgvQ_19_9">2,366</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_3huyvLL91EmFFTmdO5f-qw_20_3">8,623</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_wqepONyia0y1oZiWQ5aq9g_20_6">4,855</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_8RWwRv4CUk-V1m7BivUjPQ_20_9">15,519</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="Tc_6-odtuVHE0C0iSM3AZzpyQ_21_3">17,271</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" sign="-" scale="3" id="Tc_7Hcz6frQEkaB5urgo9ox9A_21_6">2,706</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="Tc_BOZgKRrX40yVbV03DT7adg_21_9">4,312</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" scale="3" id="Tc_nt11-DH-o0WwbP0TJjGn4Q_22_3">1,174</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" scale="3" id="Tc_vzNm-6-C8kKxQa1pkLopDw_22_6">1,373</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" scale="3" id="Tc_spoNbxvl3ECMUvb1J8rGvw_22_9">735</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" scale="3" id="Tc_M_TCTckSGUSbCBT21MOFvg_24_3">4,004</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" scale="3" id="Tc_I0HdRo7fykefiobQhWybiw_24_6">11,087</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" scale="3" id="Tc_CfbwSL_Ot0-YIVMR1pyT6g_24_9">31,046</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="Tc_Gthqzr7YfU69ScWGCE8xYg_25_3">44,620</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="Tc_tbrdOOyXT0qN0DbVu66jsA_25_6">19,434</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="Tc_3v6YRq9ZhUScebud7aic6Q_25_9">4,376</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" sign="-" scale="3" id="Tc_okhCMAtdFk2GkKz71bgTCw_26_3">14,813</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" scale="3" id="Tc_nDRVllBpn0yW9HulGRr4IA_26_6">808</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" sign="-" scale="3" id="Tc_XMXQS3_yUE-Wa_TJF6XBIg_26_9">14,751</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_9wZyNn7hTUymekEGm1Jtdg_27_3">180,151</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_0joCByxiokaDynJvstaOmQ_27_6">286,510</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_iMfJ1wzQRU60uKF66x6bqA_27_9">142,028</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_waBpcT7ci0ChIo3k-GOCmw_29_3">22,330</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_SMlyzVfrVkyMrlYFViF3JQ_29_6">24,131</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_K7vcJC_tjEK2wCb8Gl2CgQ_29_9">31,750</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="Tc_cNwKGz6TgUi5beeVI8AwHg_30_3">3,101</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="Tc_DQeuskFx-UOxLrnBEJmRkg_30_6">2,270</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="Tc_YQj1As1APUavW-hVvCy9cg_30_9">2,159</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Proceeds from sale of business</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromDivestitureOfBusinessesNetOfCashDivested" scale="3" id="Tc_g1a_oEuvpkeImpxYPiOd0A_31_9">1,611</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;background:#cceeff;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_z0sY5P90k02fYfT0nHvMGg_32_3">227,493</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_dSTHbF92zUSJZ7zLqwGqUg_32_6">185,941</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_wT6okuS4GUq_uy4cvjk8Ng_32_9">196,470</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_49DiYXAx5kqBPt0wN7V69Q_33_3">246,722</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_b2f6CnJvrEKdLBlO860EUw_33_6">207,802</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_r59A8KOxik6TPP8nd7VbwQ_33_9">224,450</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLongTermLinesOfCredit" scale="3" id="Tc_1CMD2Y_YJ0qYAiLwOpz8Wg_35_3">275,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLongTermLinesOfCredit" scale="3" id="Tc_gLfJ6jf7hUqdZJodmgBwxA_35_6">268,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLongTermLinesOfCredit" scale="3" id="Tc_n4WoO-Jzq0u6x5Ek4v3OaA_35_9">356,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfLongTermLinesOfCredit" scale="3" id="Tc_IQBQ1Y9JwEmRY5XYyj4mOw_36_3">125,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfLongTermLinesOfCredit" scale="3" id="Tc_GI4-q0IGmEeIUQyak8V38g_36_6">226,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfLongTermLinesOfCredit" scale="3" id="Tc_s2iip69xfEmOpUlcj2P-QQ_36_9">228,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments on term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfSeniorDebt" scale="3" id="Tc_zd-XTLogm0-08Uo7AgMdGw_37_3">15,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfSeniorDebt" scale="3" id="Tc_gmiac-9ZiUigVsiDgzPQvg_37_6">15,000</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfOtherDebt" scale="3" id="Tc_mnM_ri_ZmkygBpk1fuurvg_38_3">15,696</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfOtherDebt" scale="3" id="Tc_tlZmF374YUCS7owbJ0N_UA_38_6">46,534</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfOtherDebt" scale="3" id="Tc_Lhy4i-Cy30CafwQT9o781Q_38_9">3,784</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Payments on finance lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" id="Tc_hBFHCRiLeECEIofKAZqJtQ_39_3">3,805</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Debt financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfFinancingCosts" scale="3" id="Tc_J6y_zZuuRUSWZTmhCKsa5A_40_9">1,405</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="Tc_xEyDdInEOUmkxB6W1ZwhMg_41_3">17,384</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="Tc_i1zs6kGS3kqlN-zg0jdQnA_41_6">15,499</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="Tc_6huB5D7iN0WdP0CKvdTy2A_41_9">14,543</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 18pt;">Share repurchase</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="Tc_cbVpzNZAvU2FkHHemkiBlg_42_3">27,054</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="Tc_QYXwS6IFO0uYI5OPupOIEQ_42_6">30,120</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="Tc_BVofffCBkUK42W6PVPtODw_42_9">19,550</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_NqQkF_8SO0GYvd4UA_VDYA_43_3">2,363</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_KouYEfiLokC0nrwZK2DhxQ_43_6">1,076</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_OjAqBw9go0eUZbXOJQjzBg_43_9">1,498</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="Tc_P5m28IztzkOkwyjjy__2OQ_44_3">5,634</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="Tc_QMA4KguhJEepke2gqH1jpw_44_6">2,144</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="Tc_3NXyIXnBdESag7wodBRhtA_44_9">2,350</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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: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:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredAcquisitionPayments" scale="3" id="Tc_FkoHnLZMkUCRVKkjdBQjGA_45_3">400</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredAcquisitionPayments" scale="3" id="Tc_lx0Q3mh_DkqAD_Hq7I2Fkg_45_6">650</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredAcquisitionPayments" scale="3" id="Tc_Ed1RpMHzek67dzAWFRHgBA_45_9">637</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_qigwHHiGaEWYLAcE8kCfFA_46_3">3,481</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_Nrs4t9W2X0GzCP0h9KykWw_46_6">9,865</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_SI7NpSN_Jk-o4GZuN6zZ1w_46_9">1,343</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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 (used in) financing activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_N4hGBSBHbUmuKtx7qLbI2w_47_3">70,451</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_Uble3xh9hku409uEvKRz9g_47_6">74,600</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_0TjPvh7pxUGVjJHQe3DN0w_47_9">87,590</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:9pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_Et5_lbCaoECecqS4bZma1A_48_3">3,880</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_oeq2lJRE8kix8IJt7wLrdQ_48_6">4,108</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_H40bKi2fwE6wW9lqyVtWOw_48_9">5,168</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.47%;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:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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:0.92%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_L5zF0FPitEGe0FSkatD7QQ_49_3">54,896</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_XeHrsrzO006F_mOT3CLRTQ_49_6">50,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_gExdRz_C7ECjfV0fhlDoVA_49_9">45,620</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.82%;margin:0pt;padding:0pt;"><p 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:68.47%;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:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;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:7.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_OFOz874Hw0SiPm6FmMQJGA_50_3">58,776</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.05%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc__wGo-qpFn0SoU8lp3s-YNA_50_6">54,896</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.06%;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.72%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="Tc_gmkkq0-UeEeWbXc-3lYi3w_50_9">50,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;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:8pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">50</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.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;max-width:100%;position:relative;"><a id="_4f622cc6_1cea_4799_ae2a_9c4949df235f"></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;">COMFORT SYSTEMS USA,&#160;INC.</b></p><a id="NOTESTOCONSOLIDATEDFINANCIALSTATEMENTS_6"></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;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</b></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;">December&#160;31, 2021</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:NatureOfOperations" id="Tb_EtNEv6nOW0mIQy6hsa33nQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 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 0pt 12pt 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. Approximately <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A" decimals="3" format="ixt:numdotdecimal" name="fix:SalesRevenueServicesNetPercentage" scale="-2" id="Narr_MAlVZA4j9kyt1eAcIzRbrg">46.3</ix:nonFraction>% of our consolidated 2021 revenue is attributable to installation of systems in newly constructed facilities, with the remaining <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MaintenanceRepairAndReplacementServiceMember_Zgr028iIY0KoMb6WF6_NqQ" decimals="3" format="ixt:numdotdecimal" name="fix:SalesRevenueServicesNetPercentage" scale="-2" id="Narr_BFVZRESH1UqM4Ydctvo-CQ">53.7</ix:nonFraction>% attributable to maintenance, repair and replacement services. The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company,&#8221; refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.</p></ix:nonNumeric><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><a id="_dfe8f344_31ac_4933_8e96_00da7a7fba3d"></a><a id="_45c81d15_4980_4a03_870f_257c68201ff6"></a><a id="_7e89bc74_c4ee_46c8_a4f3_b5d986dd6eb5"></a><a id="_03c84296_add8_447e_8728_833dd92fecf6"></a><a id="_31d00b67_935e_476e_89db_2127dd87e016"></a><a id="_cf243849_0cbd_4866_8fd5_3c8b1738a9f3"></a><a id="_bf45d63c_b9be_4a96_a1de_8b23e4a11221"></a><a id="_47b03d4f_4c71_4367_978a_2bbd0d5ed1a8"></a><a id="_0d120c8f_3ebc_4887_b9c8_c12714070dab"></a><a id="_5b7895ab_feb6_4702_a292_d8e012a308e5"></a><a id="_5c0959f8_b34c_4c01_8470_0da1b9194049"></a><a id="_ba4a34e0_6a32_4ad4_ba89_dcd23025629d"></a><a id="_cecf192c_22fe_402d_8b58_23958c9aa682"></a><a id="_fc1fa410_4a63_4e60_a511_2f64b4041fc2"></a><a id="_a6cda3b1_ba57_4a03_92b1_5f91ef0392fe"></a><a id="_1120737a_c6a4_4f9d_8728_204cb33d6658"></a><a id="_184594f7_95d2_47a0_8568_8f77e5535ed5"></a><a id="_8c355b34_8424_4be5_816e_d701d1098a9a"></a><a id="_bcaa208a_c29b_4d9b_8c4d_d3ed172db997"></a><a id="_991fef4d_23c0_41ba_bb1b_5687e9fe3ef7"></a><a id="_33b8e1be_1543_4680_ab62_1d268eac20dd"></a><a id="_48825ecc_0f29_475f_89dd_d9527ba5e5b8"></a><a id="_ffcee133_69e8_476a_9ad2_b05c3538b130"></a><a id="Tc_AQ4C-RRrVky3nfEfYxrp4A_1_2"></a><a id="_4ce3cdd7_6076_4713_b210_46782f4377ff"></a><a id="Tc_rEyT4qcB-0aNLAISC2_YtQ_2_2"></a><a id="Tc_LTQYZPjJykeZJIadvGJ4DA_2_5"></a><a id="Tc_pzSfsIED806-MjVOhcvg4A_2_8"></a><a id="_3240dcb4_54dc_4352_81e4_f5161a8cd3e3"></a><a id="Tc_WC88sdaVf0u-Ei5_f2fbvg_3_0"></a><a id="Tc_L3WczIGeLUaI8VDfPPJ52Q_3_2"></a><a id="Tc_UTPfEpFv-EKex56duE_Rjg_3_5"></a><a id="Tc_Hufp8sE90ki08dT51wd7zg_3_8"></a><a id="_fd7148c1_783c_4c7a_a9f6_b7ed745310e4"></a><a id="Tc_c9HAMR_veUCCpkZnqM17fA_4_0"></a><a id="Tc_1y_cXLPnVEuuIzttpqL71g_4_2"></a><a id="Tc_Qd50BWAl-kmHy4J5f4KFhA_4_5"></a><a id="Tc_MA48wx01G0WJGadfFeRSEg_4_8"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="Tb_vWgHGXoLm0eTkxHf237zzg" continuedAt="Tb_vWgHGXoLm0eTkxHf237zzg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">2. Summary of Significant Accounting Policies and Estimates</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ConsolidationPolicyTextBlock" id="Tb_iZ_rvjPzR0ygB5fmB-BNvA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Principles of Consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">These financial statements are prepared in accordance with accounting principles generally accepted in the United States of America. The accompanying consolidated financial statements include our accounts and those of our subsidiaries in which we have a controlling interest. All intercompany accounts and transactions have been eliminated. Certain amounts in prior periods may have been reclassified to conform to the current period presentation. The effects of the reclassifications were not material to the consolidated financial statements.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:UseOfEstimates" id="Tb_ZXDotDP8qE2bHEXLkCa9DA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Tb_FtC-LRQEsUezxjUvG26BTQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Cash Flow Information</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents.</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" id="Tb_BmKBBf5T30aKCRmfaBBCKQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash paid (in thousands) for:</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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.87%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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:10.55%;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.53%;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:60.87%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestPaidNet" scale="3" id="Tc_8AkSR3W4qUivxpojjk_JJQ_3_3">6,052</ix:nonFraction></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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestPaidNet" scale="3" id="Tc_MCTSVmcWKEKDy4IWfMtuMg_3_6">7,684</ix:nonFraction></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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestPaidNet" scale="3" id="Tc_4LtmiQN8MUKdqX-KTYefPw_3_9">8,817</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes, net of refunds</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;"><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:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_RURnxuaUjUOqSq-O0PLyzQ_4_3">52,204</ix:nonFraction></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;"><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:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_XRWxRp2z3E6Og1zGbILS0Q_4_6">51,286</ix:nonFraction></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;"><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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_Y7jRf8yfH06534V33-P7BQ_4_9">45,288</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Tb_zB7R88rT_UWvEBVdOP0pmw" continuedAt="Tb_zB7R88rT_UWvEBVdOP0pmw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recently Adopted Accounting Pronouncements</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 December 2019, the FASB issued ASU No. 2019-12, &#8220;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes.&#8221; This standard simplifies the accounting for income taxes by eliminating certain exceptions to the guidance in Topic 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The standard also simplifies aspects of the accounting for franchise taxes and enacted changes in tax laws or rates and </p></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">51</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.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;max-width:100%;position:relative;"><a id="_71f8a8b0_d330_4a44_a516_415b64862703"></a><a id="_a34fca12_2313_4392_ba27_d34d86cce0e2"></a><a id="_bb347f6a_a955_45fa_affb_ce8366254cf1"></a><a id="_ea0ed93d_4aff_438b_83b5_9ed58180b9e9"></a><a id="_bfedfd75_c5ab_4caf_a29a_821e92528d27"></a><a id="_00182f9a_eb7a_427c_b207_6e6b8bbde6d5"></a><a id="_8685c006_1f8d_456b_a655_4ab42846d925"></a><a id="_7a3b8bd5_2cb1_4cc2_961d_d0d2d30558cd"></a><a id="_d7482cb5_5789_4f3f_bb1e_b60771ab4261"></a><ix:continuation id="Tb_vWgHGXoLm0eTkxHf237zzg_cont1" continuedAt="Tb_vWgHGXoLm0eTkxHf237zzg_cont2"><ix:continuation id="Tb_zB7R88rT_UWvEBVdOP0pmw_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">clarifies the accounting for transactions that result in a step-up in the tax basis of goodwill. ASU No. 2019-12 is effective for fiscal years beginning after December 15, 2020 and interim periods within that year. We adopted ASU No. 2019-12 on January 1, 2021, and the impact was not material to our overall financial statements.</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;">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="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;">In March 2020, the FASB issued ASU No. 2020-04, &#8220;Reference Rate Reform (Topic 848).&#8221; The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (&#8220;LIBOR&#8221;) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 9) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We are currently evaluating the impact of the transition from LIBOR to alternative reference rates but do not expect a significant impact to our consolidated financial statements.</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 October 2021, the FASB issued ASU 2021-08, &#8220;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.&#8221; This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.</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:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Tb_Uu1xYVf2Ek6y443Z3PVGtg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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="white-space:pre-wrap;">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.</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="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 the cost to cost measure of progress 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 measure of progress, 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="margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:CreditLossFinancialInstrumentPolicyTextBlock" id="Tb_rTd0wsbqCkyI9wcR0oY45g" continuedAt="Tb_rTd0wsbqCkyI9wcR0oY45g_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 costs and estimated earnings in excess of billings. 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 </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">52</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.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;max-width:100%;position:relative;"><a id="_23da3a6a_d702_4ca3_9548_c82bf30492c3"></a><a id="_02d89779_5e35_48ad_8b79_7dd2d7ee8e5f"></a><a id="_9a9964a7_f01b_4ff8_8030_e089e143de5c"></a><a id="_924e1ca4_220e_4164_bb2b_0dfb637f3173"></a><a id="_ebef7f94_efd7_4834_9646_3a8cda6362be"></a><a id="_4b4ee983_8f5e_4ffe_a6ec_5ab09b8079a7"></a><a id="_4ca3d01d_15cf_4f39_9105_7612a78c513e"></a><a id="_f47fe01b_7a91_4b4f_8d41_0a75b979e823"></a><a id="_efa2f811_2534_4d78_b04b_4148da10b7b6"></a><a id="_c220d4b7_8175_48f5_9efa_480fcb9aa212"></a><a id="_2bca5105_5f79_42cb_88d4_14f9a3a0f544"></a><a id="_b1ba3d94_a410_403b_b7d3_f27d18aa87c4"></a><a id="_35d91111_efbc_4783_b814_bab71753dbf7"></a><a id="_c7736ae2_6af7_4c03_95b7_ad4256e10d3a"></a><a id="_6e1dd299_68c1_4c7f_9a63_bbef1503abba"></a><a id="_7db915a5_fc42_46b7_aaac_076d2b45b449"></a><a id="_791f9a8f_e64e_42b1_a20f_34441eae0ef9"></a><a id="_30a3e5e9_76ad_4b1b_b433_27cacfde61d0"></a><a id="_03c4a496_e493_4c16_a62b_cdaf3427bc23"></a><a id="_af5b253a_24d6_41ed_95ad_7c77d699baa4"></a><a id="_041ea2f7_f83a_4b3b_a41d_e8105fdfffaf"></a><a id="_63417c7d_5703_44ee_aeb1_8fc12b69b399"></a><a id="_aa2728d3_f20c_4913_aecf_71b6503c1949"></a><a id="_286ac99d_b7b5_4121_a406_8d55cb5f73be"></a><a id="_b9d8589b_d05f_41ed_9e4e_d663d8e86c2b"></a><a id="_574302d5_85d3_4451_85b9_5119c65c72f0"></a><a id="_25f4ae2c_abd9_43f9_9762_7a0f62fea4bf"></a><a id="_ec4180bb_e75d_44ef_899f_c5ab2d4739e7"></a><a id="Tc_DkYd9yHf3U6xGhSOJV6lAg_1_1"></a><a id="Tc__silO1nERkWg7gxFTUevng_1_13"></a><a id="_c4fb4f02_42ee_498f_b7ef_0e3544e8503c"></a><a id="Tc_fofhfTqL6EO1uL6sdEpIyw_2_1"></a><a id="Tc_N2Korz0Wgk6k_Zp2tY95gg_2_13"></a><a id="_194f2ab0_c4e2_4957_8f5b_4d0e6df177d8"></a><a id="Tc_VCPCfcSRlEm-A5wRoaSG_w_3_1"></a><a id="Tc_85oRghlHl0eLkg6BoLa32w_3_4"></a><a id="Tc_T623dwSRJU2AqYV7GqNxGQ_3_7"></a><a id="Tc_7Lm4FxLzD0-95KQxT_KWTQ_3_10"></a><a id="Tc_dz3aG5163Eufz63PWtak9g_3_13"></a><a id="Tc_J8Knj3kl50yShvk2_96f6g_3_16"></a><a id="Tc__iPpLcyEjEOZmODVzfPUxA_3_19"></a><a id="Tc_-8TihsZihk-COdehROIeJA_3_22"></a><a id="_112c04ba_e9ac_47ea_9a02_6b21cc231991"></a><a id="_d8bb9ded_0e5a_4408_9152_35e9f5ca34e6"></a><a id="_2b0008ff_b378_40cf_9b8c_96384b9d9f6e"></a><a id="_305fdee5_50dc_4057_be88_767f118f69a7"></a><a id="_29bccf1b_83f5_48f3_a8bf_b4e698844527"></a><a id="_40034d08_f482_4f1d_858d_c1e1fcc7a594"></a><a id="_f7f35833_cc7a_498f_b850_e83636a1da4b"></a><a id="_3fb16eff_c74c_43a3_b0e3_7ad874c47cea"></a><a id="_71b1e3bb_b399_460a_a163_320fb776f70b"></a><a id="Tc_mWvH-wNrr0CqCde-BboAbA_4_0"></a><a id="Tc_XGsMXb89y0uaH15fP66K6Q_4_1"></a><a id="Tc_bKWL8y1Ws06iPlnxqkReBQ_4_4"></a><a id="Tc_XeEZ-hlmWUqPci6dNP859w_4_7"></a><a id="Tc_ECIQ3Pf6DkyhMDxFw0CLcg_4_10"></a><a id="Tc_gb8j9unkdkmxlTwcHJwR0A_4_13"></a><a id="Tc_NyN6r6pIQUmEYCjKv8CzjA_4_16"></a><a id="Tc_y32ps9ZsNUWjel1jR8ZbzA_4_19"></a><a id="Tc_2dmcTi8Tsk6m51bZPumRWQ_4_22"></a><a id="_0d3bca3f_669d_4029_8c2c_09d67c4909e5"></a><a id="_cfb435e2_6e0b_4164_b496_ca5834ed41a2"></a><a id="_7b8b9c2b_12bf_411f_98af_098f33ad77ff"></a><a id="_8fd63332_b577_4c1c_afa8_82b58af98e2a"></a><a id="_7be46e68_41a1_47e0_8e26_55549f334ca9"></a><a id="Tc_6DTLjZqHkUqcztzwFsb67Q_5_0"></a><a id="Tc_HozPGB5nwkim9L2BBkTCQw_5_2"></a><a id="Tc_Mo_rwQbcJUe1yWeb_V1xTQ_5_5"></a><a id="Tc_lLcNU80ULUyAvHK_yYzN9w_5_8"></a><a id="Tc_YfA1ciy5BEaS3ufpRxzYUQ_5_11"></a><a id="_946c29eb_1c8d_4c80_87a3_04f300fd305e"></a><a id="_487caf29_1af4_412d_badf_f028fab4853d"></a><a id="_59fb5893_547f_4e00_85c2_bc7e24fe123b"></a><a id="_875524b7_925a_4db2_96a1_e9233af897fa"></a><a id="_21647ff2_2754_42d9_8f14_b533cb83eb92"></a><a id="Tc_z31aKRFKsUqycZqrVvTQQQ_6_0"></a><a id="_9f4412b2_d60b_4072_a4c4_762ddc95ba45"></a><a id="_6a3ff62f_d3f4_41fe_874e_d313d5c37613"></a><a id="_b5c2a22a_9b37_4cc7_87b1_fbc70732b028"></a><a id="_7c93194d_235e_4afe_9775_8a083d15d5d8"></a><a id="_2c9f2180_7671_401f_96ab_dde382323434"></a><a id="Tc_7bURX7Y050ekU9y_Kne-qQ_7_0"></a><a id="Tc_Y1b6to_nsUer6BP00eN0RA_7_8"></a><a id="Tc_xGaua_sdxE2qaRuFaaKtzw_7_20"></a><a id="_ad1fcdc5_c8f0_48a2_b7f2_6fb7d8bfd83f"></a><a id="_c7a69a46_1a03_41e7_8094_3b4cf373b37f"></a><a id="_c497fad9_f677_486c_81b2_c12b8a5fc801"></a><a id="_e29b3774_08c1_49d1_bff4_4b21f0a59631"></a><a id="_293cc688_97fe_45b0_93b8_f494f7aca03d"></a><a id="Tc_mnXxrfEhgEmDBxy9EPRjDQ_8_0"></a><a id="Tc_GBEnqumpJEu2v79HM87GGw_8_8"></a><a id="Tc_IwiD9I1ds0mF69WLr_p0Kw_8_14"></a><a id="Tc_ycxrmIevaUuMDeFPkCuHoQ_8_20"></a><a id="_46e0ff3f_3921_4c87_85fd_1c42fdd8d077"></a><a id="_0513abe2_f7bc_4b24_a88e_0f4cbd797299"></a><a id="_cba61d71_120e_45a4_9c09_32e142b9d29a"></a><a id="_acca9b22_69fa_470c_9f13_0a28330187ae"></a><a id="_89970283_6efc_4315_b19d_33c1abdaa428"></a><a id="Tc_MM4KsGCT1EOMOdQqvUjpWg_9_0"></a><a id="Tc_Zir1HpN7m0O2YDFftnxEaQ_9_2"></a><a id="Tc_fiigwSqtCk-y6DtyKz-4GQ_9_5"></a><a id="Tc_jFEVJ4k6rUS9N8wmVhZENw_9_8"></a><a id="Tc_UgZhSRIfOEOfklKqYeSqsw_9_11"></a><a id="Tc_3hNTIr13bUCxm6rgl5tynQ_9_14"></a><a id="Tc_WL50do4qNE20GA8eHVrE2Q_9_17"></a><a id="_f13ad7ea_5255_4f2a_8cec_dff773121ff7"></a><a id="_1e593844_4e8c_420e_b0b7_c2eb2d9de983"></a><a id="_44e4da17_8530_44cb_8793_4d6a039fc82a"></a><a id="_c2fe924f_19e1_4be9_93e7_0949d7c9337d"></a><a id="_6b39826f_a0ab_4983_bd4a_06ca0a62d7a8"></a><a id="Tc_qK8kmEX4s0SJ54i-Mi5iPw_10_0"></a><a id="Tc_JmvWIsTbW02kHNXdOBnugA_10_1"></a><a id="Tc_uDPSL-504kKKfauhVg_W5g_10_4"></a><a id="Tc_v1kYuquXlUupNomJE62S2w_10_7"></a><a id="Tc_3hJ9cuGp1kOBzWZiV7O4ig_10_10"></a><a id="Tc_WmEgugFytUWcRust0Li7dw_10_13"></a><a id="Tc_URbEt7Rko0GLdkte_dh-vw_10_16"></a><a id="Tc_TajMbGzetUmJnKZ8xPNhGA_10_19"></a><a id="Tc_7Mh-i1SyvUu0J3qs7I_-1A_10_22"></a><ix:continuation id="Tb_vWgHGXoLm0eTkxHf237zzg_cont2" continuedAt="Tb_vWgHGXoLm0eTkxHf237zzg_cont3"><ix:continuation id="Tb_rTd0wsbqCkyI9wcR0oY45g_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">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 Other 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 non-residential 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 (e.g., 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;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;">Starting in March 2020, we experienced negative impacts to our business due to the disruption caused by Coronavirus Disease 2019 (&#8220;COVID-19&#8221;). In March 2020, the World Health Organization categorized COVID-19 as a pandemic, and the President of the United States declared the COVID-19 outbreak a national emergency. The Company considered the impact of COVID-19 on the assumptions and estimates used to determine the results reported and asset valuations as of December 31, 2021 and December 31, 2020.</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 2020, we increased our loss rates and increased our specific reserves primarily due to the economic disruption caused by COVID-19, which was reflected in our bad debt expense in the prior year. This increase was primarily, but not exclusively, due to concern over collectability of receivables from customers more directly impacted by COVID-19. In 2021, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized.</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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" id="Tb_x4XxYUclGEOVySwxewR-nQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.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:0.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:5.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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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:0.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><td style="vertical-align:bottom;white-space:nowrap;width:5.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:0.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:6.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><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;white-space:nowrap;width:0.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:6.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:0.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:1.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;white-space:nowrap;width:9.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: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:0.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:4.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:0.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:6.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:31.01%;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">Year Ended December 31, </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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:31.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 colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">2021</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;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="2" style="vertical-align:bottom;width:6.41%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:6.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;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.05%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></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;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:5.6%;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;">Other</b></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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_IaaafnG82UG4TWpOhe_3pQ_4_2">4,637</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_b3iClY_XrUSTVH4MAp8SjA_4_5">6,028</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_p7ho8aN8P0iyGlUBNbmhmA_4_8">44</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_pn1Cyu8MekmVUOA5nMXDGg_4_11">10,709</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ServicesActivityMember_T-koUBf_YEe9irSQZvCyZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_hbm2hD1D1UC3FqywOipz7w_4_14">3,192</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_HiNGDrv8wUuHEmHlOpGe9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_8w-wKNBabE6n1aYSjP7k_w_4_17">3,400</ix:nonFraction></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;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:0.96%;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:4.64%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_sk2YKkoNrUmLFi4ANUXtvQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_aFMUGENdPkylDqFP1KV5sA_4_20">315</ix:nonFraction></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;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:0.96%;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:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc__0wPmmcaNU-TcxFSMQNJkQ_4_23">6,907</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Impact of new accounting standard</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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:2.31%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal" scale="3" id="Tc_Ba08N5716U6z5cUMzabVmw_5_14">310</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal" scale="3" id="Tc_tlRh6FCejU6DsWYLumizeA_5_17">331</ix:nonFraction></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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal" scale="3" id="Tc_pwseS4a4W0Wgyi801V_9dA_5_20">54</ix:nonFraction></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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal" scale="3" id="Tc_pIxXqCSH90WUntcGkOtIzg_5_23">695</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Bad debt expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" sign="-" scale="3" id="Tc_q5znwwpehUiiqWNmYXHppA_6_2">970</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" sign="-" scale="3" id="Tc_IwsYzqIWjkOinU6Is4gV3w_6_5">496</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_-la0iODr2kObdGoUPdvaIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_nyRnX66GY0uu_w34NTVH7g_6_8">14</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" sign="-" scale="3" id="Tc_wBDzJW-TskyZPaAeFkDKGw_6_11">1,452</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_E2FgmKcQb06Ndn20wZaPkw_6_14">2,566</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_VVUKX8UWc0SOGWbcGnfQwA_6_17">2,697</ix:nonFraction></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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" sign="-" scale="3" id="Tc_pwrkbs_yIkeeEKdELwGTdQ_6_20">10</ix:nonFraction>)</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_gHPiYo5N8EiEzCYSPzxCEw_6_23">5,253</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Deductions for uncollectible receivables written off, net of recoveries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_OtFloGgpv0mnFrhHwoYJkQ_7_2">742</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_29tBWVawm0OLw6x8Ql_KAw_7_5">244</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_SPX4gRnhrUizfm15VHXg7w_7_11">986</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_NP_Am-5S70G5ZgyZVcTlPQ_7_14">1,431</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_UjwYXv5VTE2drzBL9ezhNQ_7_17">735</ix:nonFraction>)</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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.02%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_oND49RWWekiIphl503Egqw_7_23">2,166</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Credit allowance of acquired receivables on the acquisition date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ" decimals="-3" format="ixt:numdotdecimal" name="fix:AllowanceForDoubtfulAccountsReceivableAcquired" scale="3" id="Tc_NRzpPjKevUi9tQA3XJRbZQ_8_2">369</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ" decimals="-3" format="ixt:numdotdecimal" name="fix:AllowanceForDoubtfulAccountsReceivableAcquired" scale="3" id="Tc_Lbgm6QYDUE2Y3B6fTgxaTA_8_5">1,470</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:AllowanceForDoubtfulAccountsReceivableAcquired" scale="3" id="Tc_f3t_qrYMOkyCjbF1yXWtvA_8_11">1,839</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng" decimals="-3" format="ixt:numdotdecimal" name="fix:AllowanceForDoubtfulAccountsReceivableAcquired" scale="3" id="Tc_HkRlGHXTWUKIw543pjdKWA_8_17">335</ix:nonFraction></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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"> &#8212;</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:AllowanceForDoubtfulAccountsReceivableAcquired" scale="3" id="Tc_8yXxlOSJVEm9zrZ-khxBbw_8_23">335</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Reclass to other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> &#8212;</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;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:9.28%;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;"> &#8212;</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;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:0.96%;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:4.64%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg" decimals="-3" format="ixt:numdotdecimal" name="fix:ReclassificationOfAllowanceForCreditLosses" sign="-" scale="3" id="Tc_UBCTjXvxP0--pbsVaf2lmg_9_20">315</ix:nonFraction>)</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ReclassificationOfAllowanceForCreditLosses" sign="-" scale="3" id="Tc__ILJH81paEK77K2bYgDZ_Q_9_23">315</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_mvqmfs3lMEKMBkhnUnvcqA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_hF2jDxYH3EqfrkHPg1AMeQ_10_2">3,294</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_ZQhsY7wyskqSaU2eSEUUDA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_pIgyIuAT_0iDmuoL24njWA_10_5">6,758</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_h5ywFeT7FUa235wPMCtwOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_UO57ES-yBUiSPmYAbainNA_10_8">58</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_CbfQOlEPmkOc9ukFiaRvRQ_10_11">10,110</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_RVqyEMScWkSL2cnAgNcQyg_10_14">4,637</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_CF8-PubZZkK__sJs7--_GQ_10_17">6,028</ix:nonFraction></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;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:0.96%;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:4.64%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_LRvacesackyxExXvf0K76A_10_20">44</ix:nonFraction></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;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:0.96%;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:6.41%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="Tc_d2WxoTiNV0q0j8mC4XK7_w_10_23">10,709</ix:nonFraction></p></td></tr></table></ix:nonNumeric></ix:continuation><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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:InventoryPolicyTextBlock" id="Tb_BkvSUz571EGLoeZrakgBsw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Inventories</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Inventories consist of parts and supplies that we purchase and hold for use in the ordinary course of business and are stated at the lower of cost or net realizable value using the average-cost method.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Tb_Mz-6KHpA5kaMvHazgt4-_g" continuedAt="Tb_Mz-6KHpA5kaMvHazgt4-_g_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Property and Equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment are stated at cost, and depreciation is computed using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are capitalized and amortized over the lesser of the expected life of the lease or the estimated useful life of the asset.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Expenditures for repairs and maintenance are charged to expense when incurred. Expenditures for major renewals and betterments, which extend the useful lives of existing equipment, are capitalized and depreciated over the remaining useful life of the equipment. Upon retirement or disposition of property and equipment, the cost and related </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">53</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.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;max-width:100%;position:relative;"><a id="_ec3c2185_36c6_460b_a022_92a0898e2b8a"></a><ix:continuation id="Tb_vWgHGXoLm0eTkxHf237zzg_cont3" continuedAt="Tb_vWgHGXoLm0eTkxHf237zzg_cont4"><ix:continuation id="Tb_Mz-6KHpA5kaMvHazgt4-_g_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">accumulated depreciation are removed from the accounts and any resulting gain or loss is recognized in &#8220;Gain on sale of assets&#8221; in the Statement of Operations.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" id="Tb_OwdqgWAA1EmNDXv-55Qybw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recoverability of Goodwill and Identifiable Intangible Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We perform our annual impairment testing as of October 1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies (&#8220;public company approach&#8221;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#8220;EBITDA&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" id="Tb_BFRX_vCa10SEYbOr99xhuQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Long-Lived Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Long-lived assets are comprised principally of identifiable intangible assets, property and equipment, lease right-of-use assets and deferred tax assets. We periodically evaluate whether events and circumstances have occurred that indicate that the remaining balances of these assets may not be recoverable. We use estimates of future undiscounted cash flows, as well as other economic and business factors, to assess the recoverability of these assets.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:BusinessCombinationsPolicy" id="Tb_jKPJZSyZs0WqCH_tV6G2KQ" continuedAt="Tb_jKPJZSyZs0WqCH_tV6G2KQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.</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;">Contingent Consideration</i>&#8212;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Contingent Assets and Liabilities</i>&#8212;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. Acquisition date fair value estimates are </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">54</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.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;max-width:100%;position:relative;"><a id="_feed700f_00b6_435d_b2ff_56a7078b988f"></a><ix:continuation id="Tb_vWgHGXoLm0eTkxHf237zzg_cont4" continuedAt="Tb_vWgHGXoLm0eTkxHf237zzg_cont5"><ix:continuation id="Tb_jKPJZSyZs0WqCH_tV6G2KQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:SelfInsuranceReservePolicyTextBlock" id="Tb_dpxFLMc7DkO4TEZ6ALvblw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance Liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 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. Our self-insurance arrangements are further discussed in Note&#160;13 &#8220;Commitments and Contingencies.&#8221;</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:StandardProductWarrantyPolicy" id="Tb_h9O9Qj6P9EaxShJKpktusA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Warranty Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 11pt 0pt;">We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#8217; warranties on equipment. We generally warrant labor for <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:WarrantyPeriodOfLaborAfterServicing" id="Narr_Ll26G9iK8EOIJNxbcUkjrw">thirty days</ix:nonNumeric> after servicing existing MEP systems. A reserve for warranty costs is estimated and recorded based upon the historical level of warranty claims and management&#8217;s estimate of future costs.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:IncomeTaxPolicyTextBlock" id="Tb_fnuMavyQ_kWeRflq0rt8aQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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;">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 states with varying 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 0pt 12pt 0pt;">Income taxes are provided for under the liability method, which takes into account differences between financial statement treatment and tax treatment of certain transactions. Deferred taxes are based on the difference between the financial reporting and tax basis of assets and liabilities. The deferred tax provision represents the change during the reporting period in the deferred tax assets and deferred tax liabilities, net of the effect of acquisitions and dispositions. Deferred tax assets include tax loss and credit carryforwards and are reduced by a valuation allowance if, based on available evidence, it is more-likely-than-not some portion or all of the deferred tax assets will not be realized.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant judgment is required in assessing the timing and amounts of deductible and taxable items. We record unrecognized tax benefits as liabilities when, despite our belief that our tax return positions are supportable, we believe that some portion of our uncertain tax positions may be disallowed. When facts and circumstances change, we adjust these liabilities through our provision for income taxes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">To the extent interest and penalties may be assessed by taxing authorities on any underpayment of income tax, such amounts are accrued and classified as a component in the provision for income taxes in our Consolidated Statements of Operations.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ConcentrationRiskCreditRisk" id="Tb_jn9OLUwH70W6ulRzcylXUg" continuedAt="Tb_jn9OLUwH70W6ulRzcylXUg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Concentrations of Credit Risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We provide services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">55</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.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;max-width:100%;position:relative;"><a id="_21b606a2_3b45_4ed6_8915_bdf41d64d500"></a><a id="_51e960e5_df0d_4cea_89f3_80aba0e822e5"></a><a id="_17996f0f_66d1_4cc8_bca1_f6684cac3c01"></a><ix:continuation id="Tb_vWgHGXoLm0eTkxHf237zzg_cont5"><ix:continuation id="Tb_jn9OLUwH70W6ulRzcylXUg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for credit losses. We have a diverse customer base, with our top customer representing <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_ConcentrationRiskByBenchmarkAxis_fix_SalesRevenueMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_o4wGaQ2_jEOXo_B6UOh18A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="Narr_mYc4Gb-MTUOfpKAVocEUGg">9</ix:nonFraction>% of consolidated 2021 revenue.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="Tb_7NYajPMwWk-bZB8mjRlAVg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable, interest rate swaps and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. </p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:InsuranceRecoveryPolicyPolicyTextBlock" id="Tb_JzTAbX4IVkGxWYh2VT2PWw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Insurance Recovery</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recorded a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GainOnBusinessInterruptionInsuranceRecovery" scale="6" id="Narr_WKSXSLqi90eYsiwADMsx-A">4.8</ix:nonFraction> million gain in the fourth quarter of 2019 due to insurance proceeds we received in the fourth quarter. Approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ" decimals="-5" format="ixt:numdotdecimal" name="fix:GainRecordedAsReductionInSga" scale="6" id="Narr_sp0FZjEjvUibedbSeiSdLQ">1.6</ix:nonFraction> million of the gain was recorded as a reduction in SG&amp;A, and the <span style="-sec-ix-hidden:Hidden_ya8cO3-ldUOAIAIbX8MKow;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">remainder</span></span><span style="white-space:pre-wrap;"> was recorded as a reduction in Cost of Services expense.&#160;These proceeds related to recoverable costs that were primarily incurred prior to the fourth quarter in 2019.</span><span style="white-space:pre-wrap;"> </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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="Tb_wd8rkzZQfU2n8E7XPMSNyw" continuedAt="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off&#8209;<span style="white-space:pre-wrap;">site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For fixed price agreements, we use the percentage of completion method of accounting under which contract revenue recognizable at any time during the life of a contract is determined by multiplying expected total contract revenue by the percentage of contract costs incurred at any time to total estimated contract costs. More specifically, as part of the negotiation and bidding process to obtain installation contracts, we estimate our contract costs, which include all direct materials, labor and subcontract costs and indirect costs related to contract performance, such as indirect labor, supplies, tools, repairs and depreciation costs. These contract costs are included in our results of operations under the caption &#8220;Cost of Services.&#8221; Then, as we perform under those contracts, we measure costs incurred, compare them to total estimated costs to complete the contract and recognize a corresponding proportion of contract revenue. Labor costs are considered to be incurred as the work is performed. Subcontractor labor is recognized as the work is performed. Non&#8209;labor project costs consist of purchased equipment, prefabricated materials and other materials. Purchased equipment on our projects is substantially produced to job specifications, normally installed shortly after receipt and is a value-added element to our work. Prefabricated materials, such as ductwork and piping, are generally performed at our shops and recognized as contract costs when fabricated for the unique specifications of the job. Other materials costs are generally recorded when delivered to the work site. This measurement and comparison process requires updates to the estimate of total costs to complete the contract, and these updates may include subjective assessments and judgments.</p><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;">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;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Selling, marketing and estimation costs incurred in relation to selling contracts are expensed as incurred.&#160;On rare occasions, we may incur significant expenses related to selling a contract that we only incurred because we sold that </p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">56</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.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;max-width:100%;position:relative;"><a id="_d87e3bcc_94c9_4208_bbce_1f0cb3e36a87"></a><a id="Tc_heRPxdpU1k6qtx6ScyE5Fw_1_2"></a><a id="Tc_rrGiLwxkYUmZJkx_Rnm5Uw_2_2"></a><a id="Tc_kx5CcoZkUkitnHamnIz0sA_2_5"></a><a id="Tc_uJq31Yu-9kqAhg0G7KfHfw_3_0"></a><a id="Tc_Y9-GLCqGbEmJkGQFfbejYQ_3_2"></a><a id="Tc_pdtyXNtAsEKlA1JEL6MbUg_3_5"></a><a id="Tc_qLTVqgnxX0KwHjPXEIyXdA_4_0"></a><a id="Tc_DLhHH4PKFkSQ776To3ts9A_5_0"></a><a id="Tc_jFiDCbETEE2chtnfsw1Wmw_6_0"></a><a id="Tc_urXFYSHJdkuNO-Z3R5hn4w_7_0"></a><a id="Tc_ZdiiPPqah0y2wFehijLBTw_8_2"></a><a id="Tc_KrBjgYW_ckOv5m-huacfWw_8_5"></a><a id="Tc_JQQvnmle3EGOguuFzVw3kw_10_0"></a><a id="Tc_ZrQnatLDL0GqNYblijjTWw_10_2"></a><a id="Tc_0s2HlL7H90CHHpClY38qsQ_10_5"></a><a id="Tc_mEMKbngOLUezN68y2e945g_11_0"></a><a id="Tc_zq8UvAFmo0yQVAphQGODYA_12_0"></a><a id="Tc_BKRKctG3WEWJ5lDcZCJ9XQ_13_2"></a><a id="Tc_YFlgr2wYgE-KZLNwz6PWlg_13_5"></a><ix:continuation id="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont1" continuedAt="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">contract.&#160;If this occurs, we capitalize that cost and amortize it on a percentage of completion basis over the life of the contract. We do not currently have any capitalized selling, marketing, or estimation costs in our Consolidated Balance Sheet and did not incur any impairment loss in the current year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160; </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 on a percentage of completion basis over the life of the contract. 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;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;">Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date percentage of completion of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. As a result, contract revenue recognized in our Consolidated Statement of Operations can and usually does differ from amounts that can be billed or invoiced to the customer at any point during the contract. Amounts by which cumulative contract revenue recognized on a contract as of a given date exceed cumulative billings and unbilled receivables to the customer under the contract are reflected as a current asset in our Consolidated Balance Sheet under the caption &#8220;Costs and estimated earnings in excess of billings.&#8221; Amounts by which cumulative billings to the customer under a contract as of a given date exceed cumulative contract revenue recognized on the contract are reflected as a current liability in our Consolidated Balance Sheet under the caption &#8220;Billings in excess of costs and estimated earnings.&#8221; </p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfContractsInProgressTableTextBlock" id="Tb_w81ry2SdyEmAx5Zbd0NsHA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">Contracts in progress are as follows (in thousands):</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:71.72%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.05%;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, </b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.43%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.45%;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;">2020</b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;">Costs incurred on contracts in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ReceivablesLongTermContractsOrPrograms" scale="3" id="Tc_f9p7ftkxMUWFTf6p-vczDA_3_3">3,723,715</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ReceivablesLongTermContractsOrPrograms" scale="3" id="Tc_1857hmkEGUKFeX88QxHMig_3_6">3,103,580</ix:nonFraction></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Estimated earnings, net of losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" scale="3" id="Tc_iRcEeoOTXUeFNOM0PmuJrw_4_3">589,286</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" scale="3" id="Tc_EjA5RRattUK5PtdgPNlYDw_4_6">548,435</ix:nonFraction></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Billings to date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BilledContractReceivablesContractsInProgress" scale="3" id="Tc_Jb_aBUAu_UClvwRW2WPVwg_5_3">4,527,801</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:BilledContractReceivablesContractsInProgress" scale="3" id="Tc_77n7JvYAik2UDf_fOyxzZQ_5_6">3,813,171</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less&#8212;Unbilled accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_jjt_IQWniEKckJYAbxIEzA_6_3">61,881</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledContractsReceivable" scale="3" id="Tc_VeM1hAzVj0GfvyrUnIrmAg_6_6">45,596</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Unbilled accounts receivable credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Tc_KEBlOi5iBUOEAHRUUXO1vQ_7_3">715</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:UnbilledAccountsReceivableAllowanceForCreditLoss" scale="3" id="Tc_TLLNJoc7802g49R6ntP2Bg_7_6">784</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractReceivablesContractsInProcessNetReceivableLiability" sign="-" scale="3" id="Tc_p61O4ckxKU2wNUNJkxl6Gg_8_3">277,396</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractReceivablesContractsInProcessNetReceivableLiability" sign="-" scale="3" id="Tc_2UUtnsHMB0W_xvoMbrm5XA_8_6">207,536</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;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:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Costs and estimated earnings in excess of billings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_NWqEd0BfJ0-qPc9aldhllQ_10_3">29,900</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_cwK-MxKnbEWuIqmMYzJmtg_10_6">18,622</ix:nonFraction></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Plus&#8212;Costs and estimated earnings in excess of billings credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:CostsInExcessOfBillingsAllowanceForCreditLosses" scale="3" id="Tc_JZcVy8o-WEeuY3Wjk2HEDA_11_3">84</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:CostsInExcessOfBillingsAllowanceForCreditLosses" scale="3" id="Tc_S_8lbNGZsU6o1UEDAddRiw_11_6">79</ix:nonFraction></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Billings in excess of costs and estimated earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_Byv_FYK-LE-oq4K1lg2-iQ_12_3">307,380</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_kJIJ53xFwk66m1s_hIxOWw_12_6">226,237</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractReceivablesContractsInProcessNetReceivableLiability" sign="-" scale="3" id="Tc_H6r_ffnpDkSUZ11idQX4qQ_13_3">277,396</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractReceivablesContractsInProcessNetReceivableLiability" sign="-" scale="3" id="Tc_9jth21jbiUC7TAAQLt1N1A_13_6">207,536</ix:nonFraction>)</p></td><td style="vertical-align:bottom;width:1.06%;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></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 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;">Accounts receivable include amounts billed to customers under retention or retainage provisions in construction contracts. Such provisions are standard in our industry and usually allow for a small portion of progress billings or the contract price to be withheld by the customer until after we have completed work on the project, typically for a period of <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:RetentionProvisionsConstructionContractsHoldingPeriod" id="Narr_PjgFav0qM0idFro_9GkR-A">six months</ix:nonNumeric>. Based on our experience with similar contracts in recent years, the majority of our billings for such retention balances at each Balance Sheet date are finalized and collected within the subsequent year. Retention balances at December 31, 2021 and 2020 were $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ConstructionContractorReceivableRetainage" scale="6" id="Narr_pE3f136IgUSn0o6iTXKbPA">139.5</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ConstructionContractorReceivableRetainage" scale="6" id="Narr_Lj0SoOtk3k-xY_JXnc8VVQ">124.1</ix:nonFraction> million, respectively, and are included in accounts receivable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">Accounts payable at December 31, 2021 and 2020 included $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="fix:ConstructionContractorRetainagePayable" scale="6" id="Narr_2IGZ2NmlMECXk-zP7z5Tlg">24.0</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt:numdotdecimal" name="fix:ConstructionContractorRetainagePayable" scale="6" id="Narr_9Ghod4dpUE2MqsIs5A22cw">22.2</ix:nonFraction>&#160;million of retainage under terms of contracts with subcontractors, respectively. The majority of the retention balances at each Balance Sheet date are finalized and paid within the subsequent year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;">The percentage of completion method of accounting is also affected by changes in job performance, job conditions, and final contract settlements. These factors may result in revisions to estimated costs and, therefore, revenue. Such revisions are frequently based on further estimates and subjective assessments. The effects of these revisions are recognized in the period in which revisions are determined. When such revisions lead to a conclusion that a loss will be recognized on a contract, the full amount of the estimated ultimate loss is recognized in the period such conclusion is reached, regardless of the percentage of completion of the contract.</p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">57</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont2" continuedAt="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;">Revisions to project costs and conditions can give rise to change orders under which there is an agreement between the customer and us that the customer pays an additional or reduced contract price. Revisions can also result in claims we might make against the customer to recover project variances that have not been satisfactorily addressed through change orders with the customer. The amount of revenue associated with unapproved change orders and claims was immaterial for the year ended December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 13.19pt 0pt;">Variations from estimated project costs could have a significant impact on our operating results, depending on project size, and the recoverability of the variation from change orders collected from customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:RevenuePerformanceObligationDescriptionOfPaymentTerms" id="Narr_1rHATpx_cUq_nY7PNSrvDQ">We typically invoice our customers with payment terms of net due in <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durday" name="fix:ReceivableDueTerm" id="Narr_LeaJMCGJlEejNLkutJIcRw">30</ix:nonNumeric> days</ix:nonNumeric>.&#160;It is common in the construction industry for a contract to specify more lenient payment terms allowing the customer <span style="-sec-ix-hidden:Hidden_gm00fDXIjUiWVD1l4A7FZg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">45</span></span> to <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ" format="ixt-sec:durwordsen" name="fix:ReceivableDueTerm" id="Narr_WueoqtQHXkGxOS-jbQ_x9Q">60 days</ix:nonNumeric> to make their payment.&#160;It is also common for the contract in the construction industry to specify that a general contractor is not required to submit payments to a subcontractor until it has received those funds from the owner or funding source.&#160;In most instances, we receive payment of our invoices between <span style="-sec-ix-hidden:Hidden_riBRZn21y0eQAjcY6Boz0Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">30</span></span> to <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ" format="ixt-sec:durwordsen" name="fix:PaymentsReceivedTerm" id="Narr_W83vN48F9ke6TcvABGjf6A">90 days</ix:nonNumeric> of the date of the invoice. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">To determine the proper revenue recognition method for contracts, we evaluate whether two or more contracts should be combined and accounted for as one performance obligation and whether the combined or single contract should be accounted for as more than one performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate the combined or single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. For most of our contracts, the customer contracts with us to provide a significant service of integrating a complex set of tasks and components into a single project or capability (even if that single project results in the delivery of multiple units). Hence, the entire contract is accounted for as one performance obligation. Less commonly, however, we may promise to provide distinct goods or services within a contract, in which case we separate the contract into more than one performance obligation. If a contract is separated into more than one performance obligation, we allocate the total transaction price to each performance obligation in an amount based on the estimated relative standalone selling prices of the promised goods or services underlying each performance obligation. We infrequently sell standard products with observable standalone sales. In such cases, the observable standalone sales are used to determine the standalone selling price. More frequently, we sell a customized, customer-specific solution, and, in these cases, we typically use the expected cost plus a margin approach to estimate the standalone selling price of each performance obligation.&#160; </p><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;">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.&#160;&#160;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 to deliver 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:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">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 the cost to cost measure of progress 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 measure of progress, 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 and subcontractors&#8217; costs, other direct costs and an allocation of indirect costs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In our mechanical segment, 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.&#160;Similar to 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. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">58</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont3" continuedAt="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont4"><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.&#160;Variable amounts can either increase or decrease the transaction price.&#160;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.&#160;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.&#160;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="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;"><span style="background:#ffffff;">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 determinatio</span>n 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:9pt;margin:0pt;">&#160; </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).&#160;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 catchup basis. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </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&#39;s judgment about the ability and cost to achieve the schedule (e.g., the number and type of milestone events), technical requirements (e.g., 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 (e.g., 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:9pt;margin:0pt;">&#160; </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 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 catchup basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on a performance obligation&#39;s percentage of completion. 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:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Company typically does not incur any returns, refunds, or similar obligations after the completion of the performance obligation since any deficiencies are corrected during the course of the work or are included as a modification to revenue.&#160;The Company does offer an industry standard warranty on our work, which is most commonly for a one-year period.&#160;The vendors providing the equipment and materials are responsible for any failures in their product unless installed incorrectly.&#160;We include an estimated amount to cover estimated warranty expense in our Cost of </p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">59</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.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;max-width:100%;position:relative;"><a id="_a19b90e8_2480_4023_98fc_7905f7d3f7f3"></a><a id="Tc_kstd-z7lW0-avdzKkmt0Xg_1_3"></a><a id="Tc_f-zU6Jj9KkaD9DdZl3T93g_2_0"></a><a id="Tc_BGA-de-YakKdKCL4OIgwpQ_2_3"></a><a id="Tc_OcWJNUGjrEKmFJ1q_8dbOw_2_9"></a><a id="Tc_BGYgKcEjg0ayj6xjrqLeGA_2_15"></a><a id="Tc_WZOwQTCD50mn1tB-7iMTXQ_3_0"></a><a id="Tc_4fOy7yLWekGRpiCH-AnDeA_3_3"></a><a id="Tc_pjOlgTDtGEOwwf1Cfo6XOw_3_7"></a><a id="Tc_AMtprsn1M0Wim1gHG9FDNA_3_9"></a><a id="Tc_3wFY-khaPUSeXZC8i3z21Q_3_13"></a><a id="Tc_3MtsCVE7rUy4gt_U_8EH-Q_3_15"></a><a id="Tc_AXPmxLg0OEiH3OLm0uCX2A_3_19"></a><a id="Tc_9SlcwkZEp0uzYGNSNBH0DA_4_0"></a><a id="Tc_AfzWB1GeL0SXf5ZDSY1Pzg_4_7"></a><a id="Tc_sfE-NDfl10eBzKxwRKUQwg_4_13"></a><a id="Tc_OU3aRYp7P0aiprvVJrlqqg_4_19"></a><a id="Tc_3UBed6twC0GcoKlqrBkdOg_5_0"></a><a id="Tc_kbJN0hRbWkmv5W3RlOacRg_5_3"></a><a id="Tc_yrcN_1vsBES6pZnqrAJQ2A_5_7"></a><a id="Tc__96m0FGIJ0ennAhCySaYSA_5_9"></a><a id="Tc_GiwDi4FnakOr4Tw6bE6plw_5_13"></a><a id="Tc_po6enNs_u0ekBUED7O9Qhw_5_15"></a><a id="Tc_JMVswbGf4UqfjaVWOBW_uA_5_19"></a><a id="Tc_yI-B1WUPMEesWWhynUtJ5w_7_3"></a><a id="Tc_0y8EkuNWNEm_b2loTbODFA_8_0"></a><a id="Tc_15FtdcpKUkWcWIDKGqBxWg_8_3"></a><a id="Tc_AeKzjzDiC0K3f5VTRj3jOg_8_9"></a><a id="Tc_4nETISVWDkeNnJng9iBykA_8_15"></a><a id="Tc_whYugsCmAU-vTlFbcrTR3A_9_0"></a><a id="Tc_ldEaFvzToke167iSGSmBjQ_9_3"></a><a id="Tc_KePI7eZ_gUWibNfTcQ_BnA_9_7"></a><a id="Tc_3_sEZB_GoUWlHUS2aiF1dA_9_9"></a><a id="Tc_DJ09XG-QD0GQyRLpat9zSA_9_13"></a><a id="Tc_ds3pBqzLb02AzQ_1uunaTA_9_15"></a><a id="Tc_qQjg_rTQrkOMg2JCvZlUJg_9_19"></a><a id="Tc_8eceR-Hn9k6MZ9IuYKTJYw_10_0"></a><a id="Tc_6oQLswf1vUiZM9jIkslHEw_10_7"></a><a id="Tc_mGDSk8FXxkiYouDvdlTexg_10_13"></a><a id="Tc_Neq7WilKuk6aS8OrI-XuxQ_10_19"></a><a id="Tc_Gn5vwDemo0aJtXEosZ2edA_11_0"></a><a id="Tc_O1Aqsc4o-0GBSLYd8bOWUQ_11_7"></a><a id="Tc_HgdKz4uFnkelu6miKDu5EA_11_13"></a><a id="Tc_Cdhp_czvkkKYW9JyOApU-w_11_19"></a><a id="Tc_ojEs8dZNukCOdZ82-nlKpA_12_0"></a><a id="Tc_T91zQ2wj2E61MPsxdMZy-Q_12_7"></a><a id="Tc_fOo95uY2NUWM_rLfGYtX1Q_12_13"></a><a id="Tc_BMqy3RauLEWWXm__F5m3Bg_12_19"></a><a id="Tc_1CZ5q89UB060D3TzeXQuag_13_0"></a><a id="Tc_DcK0gmeFrEqY0aJj3FUKrA_13_7"></a><a id="Tc_TPsMg63qc0arOyKBR4UHlQ_13_13"></a><a id="Tc_gAAoUn5MNUGEw1PR_DuHRA_13_19"></a><a id="Tc_o7gBN0CrzkC7rFvD7YbXvw_14_0"></a><a id="Tc_ukRV_oOZv0Sa-uHRYXZ6TQ_14_7"></a><a id="Tc_3sX9SDw7kk6VnyS-Q5nfdw_14_13"></a><a id="Tc_QDrZVb77g0yMBZuuQ6PFSA_14_19"></a><a id="Tc_n9_D4juQyUywsD0abmBS3Q_15_0"></a><a id="Tc_f3uwHiAVU0-5oKLHZiizYg_15_7"></a><a id="Tc_wGijHhDhOkucJY83Tgb_cQ_15_13"></a><a id="Tc_fYBcARqUn0O5MqDNUFekKQ_15_19"></a><a id="Tc_wu-ULgfkMk6F2WYXEfg8Nw_16_0"></a><a id="Tc_ROPdXr7w-ke9KjUtfugcMw_16_7"></a><a id="Tc_LsTxgvJcBkapHYWGRmV1vg_16_13"></a><a id="Tc_ZZbaJFawn0WlAKy1C_U8CQ_16_19"></a><a id="Tc_Z8EUuUYjrUC8a24CY1WuKg_17_0"></a><a id="Tc_yNQZRIw55EKdAqLktkWk7A_17_3"></a><a id="Tc_HgymOvfonEeY6Pmd4JrY4Q_17_7"></a><a id="Tc_SiLWFyTFq0-0tt95vXgX6Q_17_9"></a><a id="Tc_Kgb13Y8aw0C2wT0Az6awyw_17_13"></a><a id="Tc_kdLg9F7eLEut8FptYBFlXw_17_15"></a><a id="Tc_EdMxFKg8EUeWGDP0A6OVow_17_19"></a><a id="Tc_sbx-x-e8bUCsvY_DDAi24A_19_3"></a><a id="Tc_Lq-QocdYEUiIF4V4nBCSnw_20_0"></a><a id="Tc_kKC_xXrNmkyhdh7PK8BlJQ_20_3"></a><a id="Tc_5Mkn5fWjlUm9EzsO3-lbLg_20_9"></a><a id="Tc_v1xSBS-upU2B2ahhULe0dw_20_15"></a><a id="Tc_lc_LlAeYwUChge6vqYp3wg_21_0"></a><a id="Tc_erAhRUQMgESxY5qLT_LppQ_21_3"></a><a id="Tc_cJ0m4Tc7a0a3nLpOlygyvg_21_7"></a><a id="Tc_eHzTkY8WbUmVZ8i6TtcnhQ_21_9"></a><a id="Tc_ecLH3fnukk6eUw_Ihlobew_21_13"></a><a id="Tc_doayIAkv6U-cn1QE3A33iQ_21_15"></a><a id="Tc_-95X8g8Lgka6hHpG6VhuFw_21_19"></a><a id="Tc_Sh8RRgDW6US10Eq5fvgpzQ_22_0"></a><a id="Tc_936GoDY7sE-yXKlTWHFNIw_22_7"></a><a id="Tc_z7pnFMzfKUKPyDSZTEEc8Q_22_13"></a><a id="Tc_dTXAkucjgUKyZ6Wlj12SFw_22_19"></a><a id="Tc_7FlCs1m0VESr4uvc2Fga2g_23_0"></a><a id="Tc_1JPLS5eW-EGx1Hl0sAEFqQ_23_7"></a><a id="Tc_CQSUOqL8y0m6h_D2cBipDw_23_13"></a><a id="Tc_Zsa0_HRNMEOfKV2r0ucleQ_23_19"></a><a id="Tc_cXyjQ7LkxEu8KtKwa7nUxw_24_0"></a><a id="Tc_j5ZkFy9Xa0CK9SC8t7gtvQ_24_7"></a><a id="Tc_JlQdeUGKHUGwB5VMDqXqtw_24_13"></a><a id="Tc_1sjM6mtkjUCgOMOhFYSUdA_24_19"></a><a id="Tc_85Qj3dZXP0uSvr4CVD8rYQ_25_0"></a><a id="Tc_NZESWNogZk6zmneBl2ZY5g_25_3"></a><a id="Tc_aB08eNSWGEa5V6kT2UliGQ_25_7"></a><a id="Tc_sDcQbCM1k0aHtrBpXVZFCQ_25_9"></a><a id="Tc_YDrMpRmwNkupTin-HhO-8Q_25_13"></a><a id="Tc_R3-7nuY4O0ewV58pT2VrQw_25_15"></a><a id="Tc_c2aqZZf9iEym0TQzW4wRIA_25_19"></a><ix:continuation id="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont4" continuedAt="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont5"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Services and record a liability in our Consolidated Balance Sheet to cover our current estimated outstanding warranty obligations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; &#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the years ended December 31, 2021 and December 31, 2020, net revenue recognized from our performance obligations satisfied in previous periods was not material.&#160;</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;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;"><span style="font-style:italic;font-weight:bold;">Disaggregation of Revenue</span> </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="Tb_ymrLjpSkU0y5-qx4jhBRWg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our consolidated 2021 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 16 &#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;margin:0pt;"><span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.8695679%;padding-left:0pt;padding-right:0pt;width:101.73%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:0.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: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:1.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: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:8.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: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:1.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: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:5.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: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: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: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:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_xmZcNvxXx0WfOIV5h8-jXw_3_4">2,542,623</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_LmZKQ9GBU0W-UG3AQx3CqA_3_6">82.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_tc64EWn_GEq61Yi3ooc-Yg_3_10">2,430,632</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_bzWnVfgzGka7cZIzGAwsMw_3_12">85.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_H85dXnz8SU2sS4mXFUDaMA_3_16">2,272,031</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_DMlxRrybt02FalZKCUeTbg_3_18">86.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ediBa0AjT0iIathuPbATkA_4_4">531,013</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_MTPJtmO240SfBMxwKNS36w_4_6">17.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_80XR7qnnrEuhjVzuI4A2nA_4_10">426,027</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_y45tnmasBkmiL3GIO3-8ww_4_12">14.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_vFyGU1W--0WOJELXO6hV4Q_4_16">343,246</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Vn5oOgPVi0CSzY_mWv1Qtg_4_18">13.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_zVR0bmzQokGJjOpF2f9atQ_5_4">3,073,636</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_JFJiKZ3_iU-870ZvR89YaQ_5_6">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_bUhH-H1sOUOaNPJ3CYNV0Q_5_10">2,856,659</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_ELr4GKQ5CkywTV6QautP6Q_5_12">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_VFQb4DIhVUC-EEhosRtmdg_5_16">2,615,277</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_fGQ_INNDxkGaxBl-RjcDxA_5_18">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_OsHcprNnMUa0I_KsgwT7KQ_9_4">1,356,688</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_XnpnxFoCRE6rlHCri-F9Rg_9_6">44.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_rJTM_YLQfkeKgXeLxo_5CA_9_10">1,112,075</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_j61RfXf6UEak7i8oujmEcw_9_12">38.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_MmRcI26PoEuOA_gPDBF0Ng_9_16">886,668</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_cslHo53mrEiHkuCB3MU9zg_9_18">33.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_PJkQJy6b_UilrkrCzvZ-QQ_10_4">390,251</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_PPgoV7K45EuZvTyHM24oYQ_10_6">12.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_UsQRDlLxwECJdvygI4dULQ_10_10">487,922</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_-R7vID0bOkW8a8EdBiz3Tg_10_12">17.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_HuoLDxhNlUe70zmL1HIsug_10_16">412,318</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_OLqa3_B-GUWaRYxKXEwXDw_10_18">15.8</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ibBdIt3530uhn-3TC54rYw_11_4">308,799</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_NTH9Lh_yzEejAYYn1Ip9-g_11_6">10.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_h8nuevErsUCZxtHHoJwV8w_11_10">319,426</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_UgVSprZlEE-hDY-YI8uy4Q_11_12">11.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_aN_baQ4OSEWYrUxvLSYmBg_11_16">348,640</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_7DtDZ4jH-kqZ57EtfjUZJw_11_18">13.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_HSrNgEVgWEejqJcKHAw3Iw_12_4">417,901</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_0tqeIqHb6E-5DHUsI_e2Fw_12_6">13.6</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_AO_RZwMimkecp4usDEuU6g_12_10">371,105</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_3W9AOZF7O0yYghnMEtl9Aw_12_12">13.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_z5Q1qQRJHEGEn59qJ_kmAQ_12_16">358,155</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_LTeu8VhzzUWS2m8uqZ-xAA_12_18">13.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_8Yh-AbbD4k-YN7P6bKvssA_13_4">174,813</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_7l2Hgybpw0a3FRqrrwH0sA_13_6">5.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_J9_iKetysU6d-4SbKc1dqA_13_10">163,717</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Uecgs2Ku9kKDCOMa2JCQFw_13_12">5.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_LgZ2SnCc-EiT9BzS0Dh8qQ_13_16">162,507</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_yj_uzmEzLESiihiVCrcYvg_13_18">6.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_vCmG6gKmeUquPpqUJc0Z6w_14_4">213,386</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_VApqjnpkcUi2peSG7r0atQ_14_6">6.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_xLGhyVzuKE-O6W8s3xlBtA_14_10">239,541</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_tE0Xr5irqUy2nuEYaMN1JA_14_12">8.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_C40EDhtqGk6r-PK5G7b6dA_14_16">248,083</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_dB7jMEnPO0GYdsnsjhq6hw_14_18">9.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_0vxFlxZ-R02IMMpj6yHjUg_15_4">112,779</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_mtkSl5NHOk2PyaiRaI-VxQ_15_6">3.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_SiDFH-gi-kuw36g3jWlSTg_15_10">86,799</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_VDWa4ssddkehR2rKvNHlcQ_15_12">3.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_AiUus9aKqEWML_2YP0UmaQ_15_16">104,693</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_9kkcDIqLjEmSeZtHaMGaug_15_18">4.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_51IGrNUkaUu_forvHB_kng_16_4">99,019</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Bwo9Ni-XEUqm_rzwPchiSQ_16_6">3.2</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_EDIAZ4Tvb0uosBKFSuzPTw_16_10">76,074</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_QcpzCxRhDUOt3yoXhPRkiA_16_12">2.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_prBWtQRk8Ui4EK3yZUjzxw_16_16">94,213</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_madKLnS-H0mQcoLe5HHzDw_16_18">3.6</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_daBKUYJAgkqFnLMMKL5_Jg_17_4">3,073,636</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_0ICz06m-OU6-iovTJ2njCA_17_6">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_voSwwbw9V0SeDZCeDV-8ew_17_10">2,856,659</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_-H2kjJkcG0a7Pea6O_GLvw_17_12">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_R1qqSIaWrE6tT4gQ_jJWDw_17_16">2,615,277</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_pGDGX88MuE2CvCubQeak_g_17_18">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_W5QkQ_sBZ0OqEAvvnVLIuw_21_4">1,421,784</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_RhVJax4KDEWRG1Jzokwlow_21_6">46.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_w-SgysseJEG6v0Yya-lPtg_21_10">1,333,739</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_YRZIC8o8ekKAjInvx41hDg_21_12">46.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_T6EliCqdd0efCJieUC0Wsg_21_16">1,201,122</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_6h2-Hoc7HUi_XhaujurNXA_21_18">45.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_BWBSTzyqCEWBdOLjtnLILQ_22_4">963,461</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_tRSaanH3KU20zd8OCmRAYw_22_6">31.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_fE_EZDsHVk2xBsILc2dBJg_22_10">910,807</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_CQ-fL_iWAUmzR4RcqCeOsA_22_12">31.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_FQROr8r0EUWi0361EOppoQ_22_16">793,159</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc__yDCpRqJTEmi8MRlbuj6iQ_22_18">30.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_IAEVnFrHOEe88REBkpOfhg_23_4">278,582</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_OFdh4pLaaU2bne9OVoD_xg_23_6">9.1</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_w89XDWdDq06GH_qtb5MZPg_23_10">241,402</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_D9hx-fIz8UyqzEnOwhDUzg_23_12">8.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_XTFtvevNLk6vO_OQt7GR9w_23_16">231,228</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_-7CkQWZx1kWAMB5xyv8E1A_23_18">8.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_twwmq7OFCkqOhLYHkP5yOw_24_4">409,809</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Ms9opw5clEavIOASHoXSow_24_6">13.3</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_FmJBdfVkokWfaS59Y3vF5w_24_10">370,711</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_klzrFfHygUeBEvTqUQnj1Q_24_12">13.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_0cFLBDeO-06kauGXsS-3cg_24_16">389,768</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Xnwi9-uSWE2LhLv6GJLLNQ_24_18">14.9</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_O-IJU8-EE0q9cnbZSkJnWQ_25_4">3,073,636</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_c6IPyNUr3kquPOEeW4gkJg_25_6">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_QLKJY5dIZEe6iZhqp9IT8g_25_10">2,856,659</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_tleQWZ-J8Eq8JQLPsqegtA_25_12">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_QU1zFvdrNkuHStpMKCFVWg_25_16">2,615,277</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="3" format="ixt:numdotdecimal" name="fix:PercentageOfRevenueFromContractWithCustomer" scale="-2" id="Tc_Fq2R3h1ywk-UuHtYjz-grA_25_18">100.0</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</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="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;">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 payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.</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. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in other long-term liabilities in our Consolidated Balance Sheets.</p><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 style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">60</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.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;max-width:100%;position:relative;"><a id="_4473f8ee_ca58_4037_ac1b_4d0518363b49"></a><a id="Tc_HOPHmFT9VkGcfsi_rTJ5Iw_1_1"></a><a id="Tc_J0ufz14SoUG7sDZOjfpLRw_1_8"></a><a id="Tc_iCH8ARujV0Sfw1k_PpI_Qw_2_1"></a><a id="Tc_Lq3_dNOCUE6NEBkJGkklwQ_2_7"></a><a id="Tc_U1Ck6BjPSEWLGmd-JhUpQQ_3_1"></a><a id="Tc_4ari_aMUxEacbgo6Okl02w_3_4"></a><a id="Tc_N8w6_MBLm0y1F6JdccSvSw_3_7"></a><a id="Tc_62I-oPSssUWnuDqkv52Ljg_3_10"></a><a id="Tc_fYmS9XpsD0KUX_2gNoldtA_4_1"></a><a id="Tc_amCED-zXC02593EHW1igcg_4_4"></a><a id="Tc_wLrjpNN-KUuAQogzEzSZkg_4_7"></a><a id="Tc_yjro7iyX9kSwro3iw0-MeQ_4_10"></a><a id="Tc_nk0qmimEK0O1bJ4dhUIC_Q_5_0"></a><a id="Tc_MmK_iyVyfEy26sroEgx9yg_5_1"></a><a id="Tc_roeBqPlR_0WZx2PIUZpXTg_5_4"></a><a id="Tc_dFTiA8L32UKRSNTrSkwvSQ_5_7"></a><a id="Tc_6bnEG-QL2EC_ctjn3dg2Tg_5_10"></a><a id="Tc_NQ70BIaAIESOpg2GZkTfIQ_6_0"></a><a id="Tc__CTgrG6V4E-XA6NjA7cCAQ_7_0"></a><a id="Tc_F86SnqAN70mIY1s8iM51gA_7_5"></a><a id="Tc_6ss5HZGXaEqFIl9qQSdKqg_7_11"></a><a id="Tc_FDPCc-LdDkWQn58awIqJkQ_8_0"></a><a id="Tc_MM4H7jVIcE6_wPnIeKr2aQ_9_0"></a><a id="Tc_qwbRx8_qfE6MGrk7hYYJdA_9_1"></a><a id="Tc_6CyP6V24kkGlO_XqS5Bn3w_9_4"></a><a id="Tc_tFIbGpoDAEyd_LcYSn4sCQ_9_7"></a><a id="Tc_SRK2Rph_GEW0NxIGzOWYkQ_9_10"></a><ix:continuation id="Tb_wd8rkzZQfU2n8E7XPMSNyw_cont5"><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 table presents the changes in contract assets and contract liabilities (in thousands):</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Tb_Ugk68rIoxkuycb2uTaOcqg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;background:#ffff00;">&#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:81.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.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.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:9.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:2.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.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.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;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: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:9.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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;width:49.36%;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.27%;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;">Year Ended December 31, </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 style="vertical-align:bottom;white-space:nowrap;width:1.25%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:23.27%;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;">Year Ended December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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.27%;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;">2021</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;text-align:center;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.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Contract</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;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;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Liabilities</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;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;width:10.49%;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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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;width:11.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;">Liabilities</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_e0zNJrgH6kWm9x2DfMne_w_5_2">18,622</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_57Dmdnx-1k-tBoSQE7U5Gw_5_5">226,237</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_em9JSmshgESdMtLne2fHUw_5_8">2,736</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_tq1VepyRFUubVlWveR0sJQ_5_11">166,918</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change due to acquisitions / disposals</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:9.19%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_bLZADkm9nEyLHLi6tzMpTg_6_2">10,356</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_DAebPihIPUiaU5Z5ojLBig_6_5">36,523</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_hcro1aYtxEShZxplFMyzlw_6_8">9,509</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_qZNix-yDE0q_RT2fiB-7hg_6_11">39,885</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change related to credit allowance</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:9.19%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal" sign="-" scale="3" id="Tc_T3o78UUBdE2ofOE77X518w_7_2">5</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;background:#cceeff;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.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.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:9.23%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal" sign="-" scale="3" id="Tc_VGMSvWQ6FU2cd47bHfPheA_7_8">79</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other changes in the period</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" scale="3" id="Tc_rnR0AzY2X0iyb2Ob0E-Eag_8_2">927</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" scale="3" id="Tc_C1re5BvT2EK01pQqNGg9Ag_8_5">44,620</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" scale="3" id="Tc_Bz1jB-O7AU6q_JCQV5bcKA_8_8">6,456</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" scale="3" id="Tc_mIPrqtE7dU67mb9Wf9H1MA_8_11">19,434</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_hh8H8GVxrkaxF5vP5RDbEQ_9_2">29,900</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_uQ_X9LTutkKwvJ-7CA9h8Q_9_5">307,380</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" id="Tc_HItt8xmol0uxeykOOqiVOQ_9_8">18,622</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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:1.66%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_igC0vA5_tEWQwTR7xMYxTw_9_11">226,237</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;background:#ffff00;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the years ended December 31, 2021 and 2020, we recognized revenue of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="Narr_e9N49z5gvUmqd5CACeZGzw">207.6</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_m1VZ78HdP0646vPIMiOfeg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="Narr_ghbVOBSFoUKD7m03BIlDFg">165.8</ix:nonFraction> million related to our contract liabilities at January 1, 2021 and January 1, 2020, 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;">We did not have any impairment losses recognized on our receivables or contract assets in 2021 and 2020.</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;">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 December 31, 2021, the aggregate amount of the transaction price allocated to remaining performance obligations was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA" decimals="-6" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligation" scale="9" id="Narr_t0w8U3i5DUaBrIf8QdlDBw">2.31</ix:nonFraction> billion. The Company expects to recognize revenue on approximately <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_-2XKPZFsX0qjeBT0aHlolg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_fE260qlEFUKd72yVUkXI9A">80</ix:nonFraction>-<ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_5OPwwdVo-Ueo1GzHPbh61A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_SJw4EhfR4E-gcVrocmJHXg">85</ix:nonFraction>% of the remaining performance obligations over the next <ix:nonNumeric contextRef="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA" format="ixt-sec:durwordsen" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Narr_0q0LXd9dT0uT73VPGohafg"><span style="white-space:pre-wrap;">12 months</span></ix:nonNumeric><span style="white-space:pre-wrap;">, with the remaining recognized thereafter. Our service maintenance agreements are generally </span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:RenewableServiceMaintenanceAgreementsTerm" id="Narr_0P3FQPLpZES4PMA8mZGzCA"><span style="white-space:pre-wrap;">one-year</span></ix:nonNumeric><span style="white-space:pre-wrap;"> renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of </span><span style="-sec-ix-hidden:Hidden_kZ9mqrjuIkuTp1OYmXuhBQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">one</span></span><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="font-weight:bold;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:FairValueDisclosuresTextBlock" id="Tb_Pye6WTZydUafkFqtjTG_Aw" continuedAt="Tb_Pye6WTZydUafkFqtjTG_Aw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">4. Fair Value Measurements</b></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;">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;"><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;">In April 2020, we entered into interest rate swap agreements to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_bsKJgzCU80yaQtj_xZcD1w" decimals="-5" format="ixt:numdotdecimal" name="fix:DerivativeInstrumentNotionalAmount" scale="6" id="Narr_KQyrIeoIVUmI38nsIWIftA">80.0</ix:nonFraction> million as of December 31, 2021, and the termination date is September 30, 2022. </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 use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps&#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 Income Statement in &#8220;Interest Expense.&#8221; For the years ended December 31, 2021 and December 31, 2020, we recognized a net loss of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_94MfVwXlx0qeB3SPPKcD5w" decimals="-5" format="ixt:numdotdecimal" name="fix:DerivativeNetLossOnDerivative" scale="6" id="Narr_JIBUyMZqa0ir25s6FgTErA">0.5</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_k12gmJXdMk-MQufdpmrT3w" decimals="-5" format="ixt:numdotdecimal" name="fix:DerivativeNetLossOnDerivative" scale="6" id="Narr_OV-Sjd1pAkCztj5dykVFsg">0.3</ix:nonFraction> million, respectively, related to our interest rate swaps. 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;text-indent:36pt;margin:0pt;"><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="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 0pt 12pt 0pt;">We classify and disclose assets and liabilities carried at fair value in one of the following three categories:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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:12pt;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><div style="margin-top:12pt;"></div></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">61</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.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;max-width:100%;position:relative;"><a id="_1700f134_e909_47b0_9b2a_f75c060d762e"></a><a id="Tc_bZoo9ABA6E-lV8koHw5J8g_1_2"></a><a id="Tc_SCmdS5vzOki5ngG_FstUPg_2_2"></a><a id="Tc_K1qbUStzy0iCzXkk7NHOiQ_2_5"></a><a id="Tc_Xr3vXZ_ITUCvSa0aI3ZOLw_2_8"></a><a id="Tc_NNZJOY2tZUWLYJ2JHTtD5g_2_11"></a><a id="Tc_vImyGFjKG0CeCHn37NZXrA_3_0"></a><a id="Tc_shQ_SPqxLEmAtgZI-UsT1Q_3_2"></a><a id="Tc__jrnuMNTNUqSVkxC2zkGrA_3_5"></a><a id="Tc_dNg3SSOmSkGPMGTrQ1wPbA_3_6"></a><a id="Tc_xb8GCaHXRE-AJ8acHSRpaw_3_8"></a><a id="Tc_EfyY4-ngPEm2Q9kaRwZaTg_3_9"></a><a id="Tc_NHRygKNYbkOOGh_hpOoiZQ_3_11"></a><a id="Tc_er4nnHwTbUCB3tbZDbtPug_4_0"></a><a id="Tc_vhaIKnoC5UOtSq3mLO7N6g_4_2"></a><a id="Tc_CVuCd1U3dU6MzPRtfJLqZw_4_3"></a><a id="Tc_3lrpYslzW0C_wMCrrHqjMQ_4_5"></a><a id="Tc_XSIakReWMkyuu3fLRGfyNQ_4_8"></a><a id="Tc_DZhmPQn6Xk6QSfE96tnKbQ_4_9"></a><a id="Tc_F_2aLb2gx0OaUJ6DM-0_1w_4_11"></a><a id="Tc_8Bog45q7G0iQN-d8zCTBvg_5_0"></a><a id="Tc_aBhqo7aYQUaEBJ4lpCP1UA_5_2"></a><a id="Tc_ampTyiUNdkGyPmpX7SrBjg_5_3"></a><a id="Tc_q__Wu9XyqkWJcPIfz-IxsA_5_5"></a><a id="Tc_AaLxusTc-UiaGMrsyYSzHQ_5_6"></a><a id="Tc_ellzWPxnaka5QasTMLXE9Q_5_8"></a><a id="Tc_foRAkXdPBUCxYoGLrDZigg_5_11"></a><a id="Tc_kBN5EWnokEi-IN_WhhmowQ_7_2"></a><a id="Tc_Rp7Sv92MkkaA4lUSuyaVJg_8_2"></a><a id="Tc__OXiiOmavUG_FQt0bdCrmQ_8_5"></a><a id="Tc_FXGpFmAC_kqHVD3qjNj3gA_8_8"></a><a id="Tc_tM5BEhaLfk-s95O3rVteqA_8_11"></a><a id="Tc_1UeV-nGjfUihswJZt2jk5Q_9_0"></a><a id="Tc_vVJLGrk31EuNqtWHdWI2BA_9_2"></a><a id="Tc_To38ur1anEaE-WGXstX8Yw_9_5"></a><a id="Tc_APVOZ4FZkU6gdNVhg0Cd-Q_9_6"></a><a id="Tc_7hctO0RlO0O6YCQoWBrYbA_9_8"></a><a id="Tc_NlKFJBrIX0qiCrXpG_bTFA_9_9"></a><a id="Tc_LR-FEl5lyE6VZSKeE9-Jwg_9_11"></a><a id="Tc_BRIEXtlMGE-037MBftBVfA_10_0"></a><a id="Tc_7vKQekiiSkagFkMMNh7r3w_10_2"></a><a id="Tc_WkPY70WZ70a3jfYC-18mzw_10_3"></a><a id="Tc_eFXPdVovmUWcnWjsdW-Bpw_10_5"></a><a id="Tc_BdgWA34RE0CrzTb1HCAQ8g_10_8"></a><a id="Tc__lxDvaAhBUyUT0EtdwdMTw_10_9"></a><a id="Tc_SaraLEZt8EWgu90eFWusMQ_10_11"></a><a id="Tc_9qIbWrlTDUGnQNKp8G6NsA_11_0"></a><a id="Tc_26gJI4Nt8UesaH0FoAVBLw_11_2"></a><a id="Tc_AZfXxbXfIEGRnsFZqR_L-Q_11_3"></a><a id="Tc_qraF6n1KREaj-D6a5hwgDA_11_5"></a><a id="Tc_aXjIF82u5Ui4DULWjrYj3g_11_6"></a><a id="Tc_jxKqltjIMkGv8jeS_QQLcg_11_8"></a><a id="Tc_oZhia9vM30GindcoEmY31Q_11_11"></a><a id="Tc_vStyJizZwkKBEw0Ixi2VgQ_12_0"></a><a id="Tc_5ym4kB7FZ0SlrL2b4sgZ6w_12_2"></a><a id="Tc_mRE-1p_WpUW9w9VEMEL_dQ_12_3"></a><a id="Tc_qqrXOen1u06jutGKLM1O3w_12_5"></a><a id="Tc_25K6ClS2HUaBgE8a_hBkEQ_12_8"></a><a id="Tc_7RwCRRWbeUmwc-ezjBBHkQ_12_9"></a><a id="Tc_HPgCWTRGmU26NI14NyDCAw_12_11"></a><a id="_f7bd1a1a_41de_48f6_80ff_164f530a6eb6"></a><a id="_738edc8a_07fa_47fd_a05f_1bebc9d55a64"></a><a id="Tc_IctUlpaalkuIhE_XM3GEdw_1_2"></a><a id="Tc_DJ_EoC2-nk-sN2c0vCsbwQ_2_2"></a><a id="Tc_Gky9rFGnEUKJ7FQ2bpqnGw_2_5"></a><a id="Tc_FJuNa8V-_0yEnL8GVyHHgQ_3_0"></a><a id="Tc_dk5NS2CpxkanjyDGfRgSWw_3_2"></a><a id="Tc_C0LgecJNRES7ZCBrYOxX1A_3_5"></a><a id="Tc_qf4qGnD-v0WcxC2TOBjWSw_4_0"></a><a id="Tc_EUxmy3KAfkatkTuXp2d8uw_5_0"></a><a id="Tc_p-QwpLj-SEiJtmC8NkdvRA_6_0"></a><a id="Tc_VGRrEEBWDkWKk7eCCh0rLg_7_0"></a><a id="Tc_83PO9pF-LEW1n-uiHddrgQ_7_2"></a><a id="Tc_BRgi45LcZUCdU6hRiZBXRw_7_5"></a><ix:continuation id="Tb_Pye6WTZydUafkFqtjTG_Aw_cont1" continuedAt="Tb_Pye6WTZydUafkFqtjTG_Aw_cont2"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="Tb_XYQBC2npcU6pN8iaw3MUmA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 December&#160;31, 2021 and 2020 (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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.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><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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_3Oz01fAJSEeZVas33dwxfQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_zXv4Img0Qk-MndVVYC5Szw_3_3">58,776</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_8Y-li0ZPLUC7zp2beFRn7g_3_12">58,776</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_oSqTtO5eJ0SKvvHXWsmlSw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_03-X4PfhukSERm-fp-wRJQ_4_6">6,643</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_tZ9XznDZNEedFEpg-hcKSA_4_12">6,643</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_LzyA2-ftwU-WoA6TssuP-A" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" scale="3" id="Tc_SxNSzWA6mEGV8AeN5p-HCQ_5_9">34,114</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" scale="3" id="Tc_SkJghqgGCUuRVuQy_sSAMw_5_12">34,114</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.78%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_X7yJX-mSrU-nteLMR5PKUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_dE64Df2w1EmfBIMgwB2pZA_9_3">54,896</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsFairValueDisclosure" scale="3" id="Tc_YNHGG2I-ZUOq2Ay-CR6p-A_9_12">54,896</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_C5NktTUsJUW1VCxCkx_q7w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_p3GSQMw8BEmSIxb2n4sKXQ_10_6">5,420</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueFairValueDisclosure" scale="3" id="Tc_87j8FzDBFkatA3KVxW_uwQ_10_12">5,420</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ctFv_0z9O0WR3nrjBcS6fg" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" scale="3" id="Tc_L2ecanKtHEGuM55iyMo3LQ_11_9">25,979</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" scale="3" id="Tc_150Wdvuj3EywEE6WyHAWdQ_11_12">25,979</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap liability</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_1AoYVA5a0UeCQKCjTKsegw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="Tc_aHYXKjZyQUeyoLJdAvHtqA_12_6">42</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_RlglHquN80C9VXs9bcyw7A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="Tc_lLxAabT2U0Kv-4HSlWd-lQ_12_12">42</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 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. The fair value for our interest rate swaps is based upon inputs corroborated by observable market data with similar tenors, which are considered Level 2 inputs. The Company&#8217;s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company&#8217;s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have life insurance policies covering <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="INF" format="ixt:numdotdecimal" name="fix:LifeInsuranceContractsNumberOfEmployeesCovered" scale="0" id="Narr_3S4n8WFn60ySzsOz25107g">85</ix:nonFraction> employees with a combined face value of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="fix:LifeInsuranceContractsFaceAmount" scale="6" id="Narr_wN3xTPtx-kaquTOGPM0JpQ">62.3</ix:nonFraction>&#160;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 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueOfLifeInsurance" scale="6" id="Narr_zz9eQMR1m0Wk4jlXPcYSDA">6.6</ix:nonFraction>&#160;million as of December&#160;31, 2021 and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CashSurrenderValueOfLifeInsurance" scale="6" id="Narr_K5I5xlM4s0GARpPnLfD-Hg">5.4</ix:nonFraction>&#160;million as of December&#160;31, 2020. These assets are included in Other Noncurrent Assets in our Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 (e.g.,&#160;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 December 31, 2021, cash flows were discounted using a weighted average cost of capital ranging from <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA" decimals="3" format="ixt:numdotdecimal" name="fix:WeightedAverageCostOfCapital" scale="-2" id="Narr_QkJrLPfaF0Ohveo7_9t6aA">10.0</ix:nonFraction>% - <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ" decimals="3" format="ixt:numdotdecimal" name="fix:WeightedAverageCostOfCapital" scale="-2" id="Narr_WORty49GXUqtWJGo4TkWXA">16.5</ix:nonFraction>%.</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="Tb_3SP13_ojNEKLWzdujKX9YQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level&#160;3) (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:80.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:75.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:0.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.28%;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.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:2.33%;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.28%;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.81%;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.59%;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;white-space:nowrap;width:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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:23.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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.67%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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: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:9.38%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_mdJx34lv0kWq1gKGPI02AQ_3_3">25,979</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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';">&#160;&#160;&#160;&#160;</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:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_VwAzqWzhvECF_cO1GBaXDA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_ih1dBD6rR0quTRMmZAnXqw_3_6">28,497</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;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:0.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.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:9.38%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" scale="3" id="Tc_v8tp8PYwO0OzuWkPo5regg_4_3">19,949</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" scale="3" id="Tc_TaT_Zs2BE065uBZmVSY37Q_4_6">16,715</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;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:0.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.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:9.38%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" scale="3" id="Tc_nQ0Bzm9lt0ORip6ibdznyg_5_3">3,994</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" scale="3" id="Tc_6c01gBIiT0m-qsQXL6KYGQ_5_6">10,114</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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:75.65%;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:0.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.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:9.38%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_egMYTNqLFEeOLasC_N_Usw_6_3">7,820</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_Juhip5d_N0Oa6I3BFpY_fw_6_6">9,119</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.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:9.38%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_q2VBjuRXZk2QnwTez7qDmA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_H6vywT6fsEGIlI1wYIuwag_7_3">34,114</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_83L39lxwaUOMx-1IJtOy2g_7_6">25,979</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 0pt 0pt;">We measure certain assets at fair value on a nonrecurring basis. These assets are recognized at fair value when they are concluded to be other-than-temporarily impaired. <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_yZXemmdOR0mhiQFn-HuCNg" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr_CjwhYzRvJkKE3DtixMP-vQ"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_x4A3QhhopkyA0HhaFU6mxw" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr_GNfjFcLWaUiBaBTgU157kw"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_ar_ag92PHEiDf08xJaI7aA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr_kEkNwIXNR0mw12iPdh7GBA">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> goodwill or other intangible asset impairments were recorded during the years ended December 31, 2021, 2020 and 2019. We did not recognize any other impairments on </p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">62</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_Pye6WTZydUafkFqtjTG_Aw_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">those assets required to be measured at fair value on a nonrecurring basis. See Note 6 &#8220;Goodwill and Identifiable Intangible Assets, Net&#8221; for further discussion.  </span></p></ix:continuation><a id="_3d33ff0f_b233_464c_a5cc_3714ba44fee2"></a><a id="Tc_PHu6a7MF-kmNAAQd8js8HQ_1_0"></a><a id="Tc_uo0P-jZ43kKW-64ukfj3JA_2_0"></a><a id="Tc_9jTtzt8vT0G_p0StbveRAw_2_1"></a><a id="Tc_NAbGMbaypkqDTl7212cY9A_3_0"></a><a id="Tc_tGzf32dkZU-QBFpXbEL9vw_4_0"></a><a id="Tc_QmjpZ7zxckecEA9JeNLgFg_5_0"></a><a id="Tc_PaDETvOCJUiRADYelGQ76A_6_1"></a><a id="Tc_TG6ZPBEdkUGZs76yHZDYfw_7_0"></a><a id="Tc_Xs6vX6nmpU2gwpUm9CwlnQ_8_0"></a><a id="Tc_0QyVCVW0tUyB1cyN-SsMng_8_1"></a><a id="Tc_Gw51sDelbkWDaPJlvsyc1g_9_0"></a><a id="Tc_7Co3uoH7C0C4nMuLVgJVcQ_10_0"></a><a id="Tc_aLcc7nveKE-UpoGYVcxKUA_11_0"></a><a id="Tc_lvzRbuVrJkaQIy05_gRNUw_12_0"></a><a id="Tc_aHIVIdMKTEqn048JA0qYPQ_13_0"></a><a id="Tc_RUOZTacy8kWd8f6H9RhJ9A_14_0"></a><a id="Tc_AXqKxOTY-kCB0ljwUycJqg_15_0"></a><a id="Tc_8g5ceR2MYki9msLwg8j00A_16_0"></a><a id="Tc_eRNU_NApAkGn6t57XVdyEA_17_0"></a><a id="Tc_ghUmTY3x9EqNz7mb2qosjg_18_0"></a><a id="Tc_lvE4VgSFN0u-kHUGtXQamg_19_0"></a><a id="Tc_fll1aKdBj02v0bxBGHHxxw_20_0"></a><a id="Tc_3PEfc5wMY0KtGJHbSeXepg_21_0"></a><a id="Tc_2GE89jgaFky-Od0vpoWOPA_22_1"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="Tb_XbojOLgoCECu6YkSLjH4KQ" continuedAt="Tb_XbojOLgoCECu6YkSLjH4KQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 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="font-style:italic;font-weight:bold;">Amteck Holdco LLC Acquisition</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 August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively &#8220;Amteck&#8221;). Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment. Revenue attributable to Amteck was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_sM7XPaiI-Eukfog9MYendg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="6" id="Narr_WDMLYoGeT0iLq7_Hgl7Hbg">83.5</ix:nonFraction> million for the five months from the acquisition 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><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Tb_kbZ7Y7Gc90OZamuCILrXJg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">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;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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.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: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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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:78.39%;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.06%;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.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_Rbv16YbFhkOSQKRwMU7i-w_2_2">107,355</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" scale="3" id="Tc_4oKddYgF5Em0iXocBd_-9Q_3_2">7,409</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_3AtdR5QpjEGxKpBtn7h64w_4_2">10,000</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredContingentEarnOut" scale="3" id="Tc_vWws5UOf1Uadqtg4jLyJYQ_5_2">12,900</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc__4XuH6K0ZUaXpMC2ZQUctg_6_2">137,664</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" scale="3" id="Tc_nnpFqmYUg0SxB1pF4vbwPA_8_2">13,554</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" scale="3" id="Tc_AXmEwN9qDk-9pJxChPGhLw_9_2">43,248</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 current assets</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" scale="3" id="Tc_jxULzK4KJU6fugmRByjLoA_10_2">3,422</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc__syY_Rm0aU2DQYzF5WisqQ_11_2">3,886</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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:3.06%;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:18.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_okBC1XuDzU-j8SnC4S7wRQ_12_2">55,076</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_RYx2pvspU0CfjAaxCEyt-w_13_2">57,700</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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;">  Operating lease right-of-use asset</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" scale="3" id="Tc_wXnN93K770iKuFjQdGfs8A_14_2">8,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" scale="3" id="Tc_sUflCfX3d0-Z_C7vhk5dAQ_15_2">14,489</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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</span></p></td><td style="vertical-align:middle;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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" scale="3" id="Tc_vph-22E2UEmTtgK3nrCbTQ_16_2">15,199</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 maturities of long-term debt</span></p></td><td style="vertical-align:middle;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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" scale="3" id="Tc_BmhcBuc8l0W4clNQYtWfTA_17_2">1,860</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" scale="3" id="Tc_mg1GTgiHjkump-ACYCs1WQ_18_2">1,115</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" scale="3" id="Tc_Vxgf_ZyLfUa54ZnHH2qjxg_19_2">6,889</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_VVrV1bcNiESWAuMHk--gGw_20_2">785</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" scale="3" id="Tc_4H7Nr8F8CUuJFqTMR6bh1w_21_2">7,882</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_iYgOqNyHGE-ZvI-89FeHgg_22_2">137,664</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;">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 could not be individually identified and separately recognized. All of the goodwill recognized as a result of the Amteck acquisition is tax deductible.</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;">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 </span></p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">63</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.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;max-width:100%;position:relative;"><a id="_0689539e_a4da_4988_8512_c85bf4f37bcb"></a><a id="Tc_QvKxTuvTdEqIksgqTu4hHg_1_2"></a><a id="Tc_OR3gKlHp_USGrS0fppfk4w_1_4"></a><a id="Tc_ta8yL5rzjka3c8hP6NUqbg_1_7"></a><a id="Tc_n4JLBGp7zEKLOO4cZOepag_2_0"></a><a id="Tc_eKHkTbIb_kGNkQTqTcM8Ow_2_2"></a><a id="Tc_StjnXQBmr0-mR3XEkY1Kcg_2_4"></a><a id="Tc_YpSrxZaSSkelMgnJxxf4aA_2_6"></a><a id="Tc_C_ivOKnMsUyiea3soyzO5Q_3_0"></a><a id="Tc_YIRyCIoYqkm34S4eS4N1dA_3_2"></a><a id="Tc_kolk0cXGM0GYSY7jziPaaQ_4_0"></a><a id="Tc_JjpKClKyIEWDMckVJjcgJQ_4_2"></a><a id="Tc_mUo4y9AmeU65RGsJFWhKug_5_0"></a><a id="Tc_-8JK1s8T3kK2qG8PpejDqQ_5_6"></a><ix:continuation id="Tb_XbojOLgoCECu6YkSLjH4KQ_cont1" continuedAt="Tb_XbojOLgoCECu6YkSLjH4KQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">ranging from <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_xDUpgl2P7kSc5svmw1j7Kg" decimals="2" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_kTLYNhzS5kGANrIei-omMw">14.0</ix:nonFraction>% - <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Ugs_7TJxDUeE-udZq2scUQ" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_Mpopdo6eT0u4s4oN2Sk_eA">18.5</ix:nonFraction></span><span style="white-space:pre-wrap;">%.  Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class.</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_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" id="Tb_IKcsOmFdLEm5FCFytGZhcw" 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><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.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:1.98%;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;width:21.23%;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.98%;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;width:12.86%;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;width:2.13%;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;width:2.13%;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;width:12%;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:45.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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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;">Valuation Method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;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.86%;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;">Estimated Useful Life</p></td><td style="vertical-align:bottom;width:2.13%;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:2.13%;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:12%;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;">Estimated Fair Value</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;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_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_zib6Ek_D2UW5TrcoW1eA1g" format="ixt-sec:duryear" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Narr_egaHMPfGAUSjIcgLLQnZBg">1.5</ix:nonNumeric> years</p></td><td style="vertical-align:bottom;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><td style="vertical-align:bottom;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><td style="vertical-align:bottom;white-space:nowrap;width: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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_htNTGfhxb02w2Z_8YXoSsQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1wdzDvH4fEyqYU_f3eUFAA_2_7">7,800</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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.86%;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_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZrPMMuESiUOJlowLOYivqg" format="ixt-sec:durwordsen" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Tc_KpaqP1Zs4UyUpl8ASQMxGw_3_4">23 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_aC0lha81vEKDqtRcnn1P-w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_VPYcK_uWwE-6u4KLEM9JKg_3_7">12,600</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;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_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iBFZquizlEal0mRaYsizMA" format="ixt-sec:durwordsen" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="Tc_RPbshQ7pfkGj_PpUuJ28aA_4_4">9 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;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><td style="vertical-align:bottom;width:2.13%;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:12%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_BOzF4jca5EKl3Uj4BVXJRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_q1ekFXwGIEakvPhvt1QoAg_4_7">37,300</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-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.86%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Z5c-Lcj_XEmWI0wMnFbofQ_5_7">57,700</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;">The contingent earn-out obligation is associated with the achievement of <ix:nonNumeric contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ" name="fix:NumberOfMilestoneEarnings" id="Narr_Ni3FR_IECk--d6DPMUhxDQ">four</ix:nonNumeric> earnings milestones over a <ix:nonNumeric contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w" format="ixt-sec:durwordsen" name="fix:BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" id="Narr_Hh-ds8XtpEWfhr5X-gG5yA">53-month</ix:nonNumeric> period, and the range of each average present value estimated milestone payment is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_nri7_FBwG0KcoVuDF89kpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" scale="6" id="Narr_3m1Xh2V7X06eUXK9YhLfog">0.1</ix:nonFraction> million to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_z7mtxKiNHEyV3EiWBO35WQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_70CBAYBa2UqxVMN2l7aOpg">11.4</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. Cash flows were discounted using discount rates ranging from <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_mdgYGEHA10S1t7vuh8iXuQ" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_zw6vYapB206WKE-_HYQj0g">14.8</ix:nonFraction>% - <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_-pccivjDLkiX5p9hMiZviQ" decimals="3" format="ixt:numdotdecimal" name="fix:CashFlowDiscountRate" scale="-2" id="Narr_5-mforMZD0OQmJBR5c1fAw">15.2</ix:nonFraction>%, which we believe is appropriate and representative of a market participant assumption. Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period. Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized in earnings.</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;">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 December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, &#8220;MEP Holdings&#8221;) for a total preliminary purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_kVNDeDP2ZkmIb1qL0G6KzQ">57.3</ix:nonFraction> million, which included $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_RCC-gvpB-UuVLP8ZLH6-xA">45.2</ix:nonFraction> million funded on the closing date, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_xkiKjjTO0Ein1tpCnGwRAw">7.6</ix:nonFraction> million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorKentuckyMember_dHA321h0Ek2VAqce0UEuaw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_yqOYCxlTVEy974Tpy4IWGA">21.1</ix:nonFraction> million and a temporary staffing company based in Indiana with a total preliminary purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorIndianaMember_x3t2Ln50aUSMmwiX7aetFg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_uDm0us3vCk6s7CTb3uNX0A">4.6</ix:nonFraction> million, which are both reported in our mechanical services 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 December 1, 2021, we acquired Ivey Mechanical Company, LLC (&#8220;Ivey&#8221;) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_cL7gK998IEe_NhxlldyztQ">78.8</ix:nonFraction> million, which included $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_9HetMI0Pc06oUzvsMaGLPQ">64.1</ix:nonFraction> million of cash paid on the closing date, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_9mnaZfu2t0Wx9uVxnEp8IA">8.0</ix:nonFraction> million in notes payable to former owners, a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredOther1" scale="6" id="Narr_V6JNM6txPE2_UidrZH056Q">0.4</ix:nonFraction> million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services 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;">In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_3_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorUtahMember_wlDa3Mr6o0GiEpfXtbLe6w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_ppyuoONxcU2mtuwEPwQBtw">18.1</ix:nonFraction> million, which is reported in our mechanical services 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;">In the fourth quarter of 2020, we acquired all outstanding equity interests of Tennessee Electric Company, Inc. dba TEC Industrial Maintenance and Construction (&#8220;TEC&#8221;) for a total purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_XeHxWkXYhUySyfXdNnv2LA">88.9</ix:nonFraction> million, which included $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_eSabQepAhk6VbhT_QBpE8w">73.0</ix:nonFraction> million in cash, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_elfx2qiuR0iV8uQopgKv5A">7.0</ix:nonFraction> million in notes payable to former owners, a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_9Cm74uBn102W9O3QmvG5gQ" decimals="-5" format="ixt:numdotdecimal" name="fix:ContingentEarnOutObligationToAcquireBusiness" scale="6" id="Narr_Oaob1JyJAU-l9621NbI_hw">7.6</ix:nonFraction> million contingent earn-out obligation and a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g" decimals="-5" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" scale="6" id="Narr_GrJJ9qFkxk6aryNrWBxbJw">1.3</ix:nonFraction> million working capital adjustment. As a result of the acquisition, TEC is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services 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 April 1, 2020, we consummated a merger through which TAS Energy Inc. (&#8220;TAS&#8221;) became a wholly owned subsidiary of the Company. The total purchase price was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_xwoRSYYFUUuIEOjemJ9fcw">169.5</ix:nonFraction> million, of which $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ" decimals="-5" format="ixt:numdotdecimal" name="fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" scale="6" id="Narr_nxHl1BYySk2lqYpv6mdDwg">126.2</ix:nonFraction> million was allocated to goodwill and identifiable intangible assets. The total purchase price included $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="6" id="Narr_TKj181WCbUWB9JJ2gMostg">105.9</ix:nonFraction> million in cash, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ" decimals="-5" format="ixt:numdotdecimal" name="fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" scale="6" id="Narr_TN1MdcQ--U2Nmwj64TvwXw">40.5</ix:nonFraction> million in working capital adjustment, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="6" id="Narr_j5zsAQWQl0GxcKZaK4Vpzg">14.0</ix:nonFraction> million in notes payable to former owners and a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_TH6lFYVDIE6sBs8j3Ld5Og" decimals="-5" format="ixt:numdotdecimal" name="fix:ContingentEarnOutObligationToAcquireBusiness" scale="6" id="Narr_UihhKky_Y0yLHMSotILfmw">9.1</ix:nonFraction> million contingent earn-out obligation. TAS is headquartered in Houston, Texas, and is a leading engineering, design and construction provider of modular construction systems serving the technology, power and industrial sectors, and reports as a separate operating location in our mechanical services 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;">We completed the acquisition of an electrical contractor in North Carolina in the first quarter of 2020 with a total purchase price of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_3_31_2020_us-gaap_BusinessAcquisitionAxis_fix_ElectricalContractorNorthCarolinaMember_S1phPGY1LUaxPOfBYtNHrw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" id="Narr_YrxcRld6ykqOjsy1-WLTPQ">41.6</ix:nonFraction> million. This acquisition is reported in our electrical services 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></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">64</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_XbojOLgoCECu6YkSLjH4KQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">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.&#160;</span></p></ix:continuation><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><a id="_f163afcb_a253_4e27_8f0d_d51fa05f1885"></a><a id="Tc_iR2Wy5yXlEaHeaQuE5vwMg_1_2"></a><a id="Tc_WPDfs2mmr02S4oeuuUsfYg_1_5"></a><a id="Tc_VzYCPwSKNEy3MgyUaYkGIA_2_2"></a><a id="Tc_Wz2BO4ugvUmKrbf30-DKmg_2_5"></a><a id="Tc_tIwhtcTKYkSS_6grbiLAZQ_2_8"></a><a id="Tc_Q3KzrAiZEkmneuhk15SMNQ_3_0"></a><a id="Tc_i_79RGDjZUi3Ydhq31ePaw_3_2"></a><a id="Tc_i3-mtmUWUU68Gyu9m5IAuA_3_5"></a><a id="Tc_Kxg1J7i6Y0aKUUy6a3AJEA_3_8"></a><a id="Tc_lz6gcbSiFkaKxLfsVTfEGA_4_0"></a><a id="Tc_ryPKeh4FWUKZfl9EFfHa3A_5_0"></a><a id="Tc_nqg-OAJ_00iDAHWovTYuCg_6_0"></a><a id="Tc_0zxDFkJ1ZE6TQbRcZ8Sw4g_7_0"></a><a id="Tc_uhqNQ-rDbk2fuRGjnv3YLQ_7_9"></a><a id="Tc_-aDdlSzCe0uJOHFuVMJ12Q_8_0"></a><a id="Tc_zQqlcmO2uU2AftvVZueeiw_8_2"></a><a id="Tc_Q0OO6saI-kGs5WustaW7Lg_8_5"></a><a id="Tc_2HIxAJdSYUeoIWDdhgqIhg_8_8"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock" id="Tb_1SdbAIFRFUiaVbfG53AymQ" continuedAt="Tb_1SdbAIFRFUiaVbfG53AymQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Goodwill</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfGoodwillTextBlock" id="Tb_MHSs9RtepU62_8G3X0ALbA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.0710907%;padding-left:0pt;padding-right:0pt;width:100.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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: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:nowrap;width:1.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:13.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.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:nowrap;width:1.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:11.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><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:1.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:8.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:57.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:1.69%;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.9%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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:13.47%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.57%;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:57.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:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2019</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_pk_-pvFBPEC-kpLb5ViLYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_ckmy5IhW3kOjw2LjLdWcbw_3_3">234,660</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_4ZFN5dJoIUemxttzkM3voQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_a0CJlnKdV0aI4yBgLnneLw_3_6">97,787</ix:nonFraction></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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_pXTgereX9UuinkHV73hvwQ_3_9">332,447</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_jEVx-uqoe0awJkaSi1dcEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_blUp9y1vg0-BHxXd2QPMuA_4_3">72,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_O3vrB75OAUChrN8BNgQyHw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_0GhhGXnV2U-KjO75ZciWCg_4_6">59,157</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_0abDs7P5HECKziCSxyZtfw_4_9">131,945</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2020</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_Zdga19kCI0WLoMUOuGLdQw_5_3">307,448</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_ciNp9JVhz0SqLbz9bc_Cog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_QdiqskfO4kyyL1CtqUF7Hw_5_6">156,944</ix:nonFraction></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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:8.51%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_ArnZWQLfcEWtYs67rBGQWw_5_9">464,392</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_aPWhUpW2x0mrTFxMfy6hzQ_6_3">52,771</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_-l9iu371kEWxeF1eNEzqPg_6_6">74,951</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.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:8.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_vMTqxUNRRUSFYlOiR4kY7Q_6_9">127,722</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Impact of segment reorganization</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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:13.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 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillOtherIncreaseDecrease" scale="3" id="Tc_ghl7vX-uj0e3ICZJOvtEzA_7_3">1,101</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillOtherIncreaseDecrease" sign="-" scale="3" id="Tc_-UyeJzYjV0mOIo1qkAbo8g_7_6">1,101</ix:nonFraction>)</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2021</p></td><td style="vertical-align:bottom;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_L2GeRea3h0OtBFM_RZQwGg_8_3">361,320</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_NWGbM_25nk64LhchArxZng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_tyKILbTfgUqjrHiOGxSHXQ_8_6">230,794</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_8S2Nbe1ayU29ChCgypqjIA_8_9">592,114</ix:nonFraction></p></td></tr></table></ix:nonNumeric><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">The aggregate goodwill balance as of December 31, 2021 and 2020 includes $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GoodwillImpairedAccumulatedImpairmentLoss" scale="6" id="Narr_ja1cQpsdRkuEb5yYwZ5AdA"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:GoodwillImpairedAccumulatedImpairmentLoss" scale="6" id="Narr_4csZ6iwNEUCTwjyqBk3SsQ">116.6</ix:nonFraction></ix:nonFraction> million of accumulated impairment charges, all of which relate to the mechanical services segment. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We perform our annual impairment testing on October&#160;1, or more frequently, if events and circumstances indicate impairment may have occurred. As discussed in Note&#160;2, &#8220;Summary of Significant Accounting Policies and Estimates,&#8221; we have the option to first perform a qualitative assessment to determine whether it is more likely than not that the fair value of the reporting unit is less than the carrying value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">During our annual impairment testing on October 1, 2021, we performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally, we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_aC11Na-UtkSXBk48xtvyzw" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfFairValuesInExcessOfCarryingValue" scale="-2" id="Narr_A-aSaHmQW0KJPMUjnRJ-Xw">32</ix:nonFraction>%. As a result of the reporting unit&#8217;s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of December 31, 2021, the Texas electrical operation had a goodwill balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_gbBn4xug80Kz7YZIgH5Ebw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="6" id="Narr_h96yQksPc0u6XMNIZw7nTA">96.8</ix:nonFraction> million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For the years ended December 31, 2021, 2020 and 2019, <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr_HsgHByXxCEi2TuVO5rzbXg"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr_Hyb2jAE_RUiTL9BwkS1b-w"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="Narr__WQdv_fGlkyEl3bj-Tkn7A">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> impairment of our goodwill was recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">There are significant inherent uncertainties and management judgment involved in estimating the fair value of each reporting unit. While we believe we have made reasonable estimates and assumptions to estimate the fair value of our reporting units, it is possible that a material change could occur. If actual results are not consistent with our current estimates and assumptions, or the current economic outlook worsens, goodwill impairment charges may be recorded in future periods.</p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">65</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.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;max-width:100%;position:relative;"><a id="_d70e238a_6768_41d3_b9df_2f03c8262f1b"></a><a id="Tc_-FZEFX2MVESx1quG3UwP9w_1_2"></a><a id="Tc_nFBeSx9MZEqY4pfoCaHiSg_1_4"></a><a id="Tc_K4YhdjmcQkGkd9quz8QTqA_1_10"></a><a id="Tc_QqD7KMU4hEq-IQRWP49KCA_2_2"></a><a id="Tc_meXtuqoiXUKEzKbl8Vdbsg_2_4"></a><a id="Tc_e-wR8BL5v0SmBwMHDO0adA_2_7"></a><a id="Tc_019napfPJEutsDJRq1-ojw_2_10"></a><a id="Tc_yXz2699Kkkadd3ON9W_TVw_2_13"></a><a id="Tc_OiC-74HbdUKOkKOvGjNpUA_3_2"></a><a id="Tc__KqMm5CSZUC8laQbLWzPXg_3_4"></a><a id="Tc_ni37abIQaUKmUTxABx1PHQ_3_7"></a><a id="Tc_EcBbSbS6kU6DIMyt3HK40g_3_10"></a><a id="Tc_iN1G5ZjyeEC_-vS0r0p4ag_3_13"></a><a id="Tc_gU6gAEddAE6izL7sSX1JAg_4_0"></a><a id="Tc_GL5nrdCdv06xSyQOtWGzAg_4_4"></a><a id="Tc_psZ7tXBUOES8k1g8Mk801Q_4_7"></a><a id="Tc_6GbHHQqiu0eKjSQL_Ku_xQ_4_10"></a><a id="Tc_HF1SAuQAH0aKwmk682iMVA_4_13"></a><a id="Tc_UuKesVvi-0e6DerHZb4fvA_5_0"></a><a id="Tc_4ClIYP5kqUS00RjhRqIIlw_6_0"></a><a id="Tc_oW7aRNfq2UifFlKPjDbo6A_7_0"></a><a id="Tc_PAV46A3VxEuK5Zm_efSEGA_7_4"></a><a id="Tc_IttL-FHFkkuhU_D4u0xdNA_7_7"></a><a id="Tc_E72O6rOS30uqbd-R-dpBXQ_7_10"></a><a id="Tc_ttMzl9bn0UydNdGfK2mO9w_7_13"></a><a id="_df5d3e56_b040_4972_bed6_0b1305d2825a"></a><a id="Tc_eyGJoJl_yk2TUqW2lLcAEQ_1_0"></a><a id="Tc_cBKij4sssEWeNhQC44tCJQ_2_0"></a><a id="Tc_qSRCnEp-oEeS5ThnuKJ6cw_2_2"></a><a id="Tc_4JcuqTN0bEGEEmG6VyO_0A_3_0"></a><a id="Tc_VwycYGD9002DnoV3nlH8Zg_4_0"></a><a id="Tc_fG9lbwAIKEecowN-0SqcDw_5_0"></a><a id="Tc_qnjUKJlsR0OZ7l8WSfOE2w_6_0"></a><a id="Tc_jQYDpxrXPke-HX0lYEAp_g_7_0"></a><a id="Tc_Q2CvhTC1OEqwFzUGrJ28QA_8_0"></a><a id="Tc_PnnBHJfbDEqqbKaMHt6yUw_8_2"></a><ix:continuation id="Tb_1SdbAIFRFUiaVbfG53AymQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Identifiable Intangible Assets, Net</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_7WSxLsjOdk-F1mYr4A2QMw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Identifiable intangible assets consist of the following (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:82%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:24.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:2.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:20.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Remaining Useful Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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;">in Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;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:20.44%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhF8GnyjDkyymQ0k65MU3A" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_6rlO3s6bYUONxxGrnkzjkw"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_34JxfyWAm02qkzKThyCKsg" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Dju6hDYs2EmlyMbNo3BkFg_4_2">7.6</ix:nonNumeric></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_6gX13UekuEa6g5h1dIaiBw_4_5">330,572</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_fVIbj_57HESqGaMniWF8vQ_4_8">130,098</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_z6I5DvjaPk-kcqnayiHvRA_4_11">255,692</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_8dcyjhyDS0OOtwcdwhQlcg_4_14">103,919</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_pOFVUUPNK0-RRbDBckuLKg" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_XitS6YZicki2HYsHfAvr8g"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_rFPxktgrDkq3nRDOp24QTw" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_KDT93HfCLkCzWoPNM-egrQ_5_2">1.1</ix:nonNumeric></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_PctrefCljEWrJtqLWOc-2A_5_5">32,300</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_vye1hFKacUyBNpjLss3StQ_5_8">20,091</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_C7y3QcXdJUCuRWqugJBUXg_5_11">19,800</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_1gDN4WiDIUmy1IDMfK551Q_5_14">12,600</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:20.44%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_O8MqIgnETES13KHlS7-3Qg" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_z2MF5VslxECceGhhFMgNbw"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_05lSAAOfkkGatc_hnwcyNg" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_qu9r-D51Z0OlqENhpxEdLQ_6_2">19.6</ix:nonNumeric></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_rGTgDe5mpkuR7hywdPzZug_6_5">114,795</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_OLp-9krxzkeV7_vvfWsP2A_6_8">22,697</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_9yn-x0sxi0KZ7YhvnGAaoA_6_11">91,495</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_No_XI-RiFESXsFLj9csOMw_6_14">18,661</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;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:2.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.25%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_ELbLBbX9sEq1z1Le49jThg_7_5">477,667</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_aphqLuZ8T0unUeHlhwOGKQ_7_8">172,886</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.54%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_5dzO6brCFkacCMy3iVUfag_7_11">366,987</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_pxU0U9uLb0GiXXqPXuOljQ_7_14">135,180</ix:nonFraction>)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The amounts attributable to customer relationships and tradenames are amortized to &#8220;Selling, General and Administrative Expenses&#8221; based upon the estimated consumption of their economic benefits, or a straight-line method over periods from <span style="-sec-ix-hidden:Hidden_CcfO-HB-okeWU5MqGAiZHQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_4uCHXny_RkuVPPut7vqdaA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_CkVACKydjUKaOV0HggIFbg">twenty-five years</ix:nonNumeric> if the pattern of economic benefit cannot otherwise be reliably estimated. The amounts attributable to backlog are being amortized to &#8220;Cost of Services&#8221; on a proportionate method over the remaining backlog period. Amortization expense for the years ended December&#160;31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="6" id="Narr_iiKoP5WL106lOsN1iIEvcw">40.5</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="6" id="Narr_fM84zUgUgk2tktIwMO5Bmw">32.7</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="6" id="Narr_OB7wof6BrEmvUcirDRTqMA">27.1</ix:nonFraction> million, respectively.</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="Tb_ScpdmTfV-Uqmc86lusAcEw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December&#160;31, 2021, future amortization expense of identifiable intangible assets was as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.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.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.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: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.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></tr><tr><td style="vertical-align:bottom;width:82.36%;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;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;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:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p 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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="3" id="Tc_YRru7rD7xUuJXTA9Q_1Opw_2_3">46,505</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="3" id="Tc_sHASA19Yz0W07Nl74IrURA_3_3">34,532</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="3" id="Tc_80spqcsNaEyzdYzL2htF_A_4_3">32,343</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="3" id="Tc_MYc8QszzYEWe_nm_B-SMhQ_5_3">30,156</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" scale="3" id="Tc_yKfg9emXdUWvb5u5xfE86A_6_3">29,312</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" scale="3" id="Tc_eiT-4UKkFUmb3ieNN0F-tA_7_3">131,933</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_Sjz5mhCiOEqYDfxP0tbAXw_8_3">304,781</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></ix:continuation><a id="_e201386f_cab0_4237_9ed2_f25fdb5fe3b6"></a><a id="Tc_qPmkCoUTP0WB0YIDU_abkQ_1_2"></a><a id="Tc_iBIQwAu4DEiaP3ZsNAS1Sw_2_2"></a><a id="Tc_DvKFABtkWE27HizlrZ88lg_2_4"></a><a id="Tc_-DZrsNe1TEi9uyW3xNj_dg_3_2"></a><a id="Tc_3i-PWsDMiU6256g8Y_a2VA_3_4"></a><a id="Tc_4KjTuWScpkabSx-a-Wjmtw_3_7"></a><a id="Tc_G0k971BuU0-_N2-csOtVhw_4_0"></a><a id="Tc_VwIuFBZUKEa39-ZL4JMo1Q_4_2"></a><a id="Tc_ts2sGSRvekWgZ4kgn3H5Sw_4_4"></a><a id="Tc_QpncFhR3g0WgcyiTLK9VTw_4_7"></a><a id="Tc_ncg1DZjKME-nzWCgfTe5DA_5_0"></a><a id="Tc_YfBxLQgMvUWaUIXFkd-umA_5_2"></a><a id="Tc_6W9hwTA4P02PoLG1cjhnEw_6_0"></a><a id="Tc_P9XM6hjiKkCtjLzlwIO2ZA_6_2"></a><a id="Tc_50IBQe_zUUSsE4U3d-hUKQ_7_0"></a><a id="Tc_XtqPqOs2M0uePQ06kcr27Q_7_2"></a><a id="Tc_m5XJPEds_UaxU0ySoWGhEw_8_0"></a><a id="Tc_kU_gojAuqkGDfcZon1Cbdw_8_2"></a><a id="Tc__N0LOA7C00KWzT-MX4xBew_9_0"></a><a id="Tc_y-xReLq3tUOvH-jJCK6C5w_9_2"></a><a id="Tc_DP-ivAmApUa9KSk141b1ew_10_0"></a><a id="Tc_dEO8PIZwhEeCrwCbtqtI6g_10_2"></a><a id="Tc_vzv9pG_E5kOPAKUWv1K1hQ_12_0"></a><a id="Tc_7Eh8HLvTi0uLtNJgnYToPA_13_0"></a><a id="Tc_bfjNeCUcdkKqcYyHAcBV0Q_13_4"></a><a id="Tc_6jGu9bb4NkifVbCcWtqHMA_13_7"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Tb_Xx3BOR2e3EyMm1mgYnpIfg" continuedAt="Tb_Xx3BOR2e3EyMm1mgYnpIfg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">7. Property and Equipment</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Tb_nzbC36zcuUqoAJs1y1nABw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.32%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;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.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:2.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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.51%;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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.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 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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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&#160;Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="5" style="vertical-align:bottom;white-space:nowrap;width:27.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:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.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;">in&#160;Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:12.02%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Land</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_apRQpgl3pEKC10gNy-HpFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_2FrsL6Nde0i6h-K5NeemIA_4_5">6,792</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_o8jPpr8g6Uy_QIuP8eHCqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_qKGzIA3BREajnpP8mxm--A_4_8">7,167</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Transportation equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_C6ecXKwanEaPzyzIvmCNUA" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_mFxBjudhR0-81SQot0MlVQ">1</ix:nonNumeric> - <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_wqg8tYEFcUqNXIPGuDQO7A" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_1ZxQfMo_C0yDwOkKwVn7Vw">7</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_8dno5vJvb06Aj61uFxC6ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_xX5tpiu-3UCg0FMRdsa48g_5_5">132,792</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_JD2hZBZ5SUeQguMFQIU78A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_tWmRM7Kn8UKe_OVVZhPDvQ_5_8">113,802</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Machinery and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_1XDoZwPjwkuXhKJ_PPmhuQ" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_8FX8i-OvG0u98UfA8iHHGw">1</ix:nonNumeric> - <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_ohjUZXDvqEmz_tIWZxTtTQ" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_AkGahn2XmkWp2qRPcK_MXg">20</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_88azp6s78kSUSFUztFc8gQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_12-7PeskrEuwonVuZE0zQQ_6_5">48,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_rp5djebjj0G_OZvpOkSONQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_-RrqW6hf-k2vw78JkUIc4w_6_8">43,386</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer and telephone equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_CfjJ7lpZBEmN9BESr9T6vQ" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_2fsUafq3zEOOphYyGF5vCw">1</ix:nonNumeric> - <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_sg3HNZ_HvUuT_GVRoogW7Q" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_noiVDbY4e0O2Fz9d-pRicw">10</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_Yvj1j1EMc0qYWARF1IJuqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_oYX2YUnfpkesqKAOav92EA_7_5">23,065</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_53Y1EGQrO0adgH-r_TpjiQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_zX2bnAVrGkedkkW2gqAhsA_7_8">23,215</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Buildings and leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_KMSArFTvnUWXY3MQZgMe8Q" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_S4zqEO2pzkWXevg8InpjbQ">1</ix:nonNumeric> - <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_Z7hfTyj8UEuMOBuiByFVKw" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_99nptT2RQU2MRGjnOD13YA">40</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_1HoQL2TdLUuevW9FSC-4EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_jrktP5eWr0qWY_utKxHo0A_8_5">74,981</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_IiLBu4et_EGxmH_5eh6kSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_yfA4eJbZIkmZNfoux5_5gQ_8_8">69,683</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;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_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_YdsRN5BWkkGW0leygAn9rw" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_GoqJqnxEIkeVP0__SDEbuw">1</ix:nonNumeric> - <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_ZWSx8AeTwkG1jZc1EpNWmQ" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_kdNniYnfx0qTrfLqXSaBOg">17</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7_8Soz4n10eFV13Hansrsw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_S9AiGyHbKUWUmHgFsqXNBw_9_5">6,081</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_uRyPTRAiJkSF6K3-uQLP7A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_OLSW9CdtfUGcATXZEYHyMA_9_8">5,861</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Construction in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_RynWBONYdU2zhg1hyMtZXA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_AK6bqj-uU0mCwkD7ICO29w_10_5">1,668</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_sehftOd7T0-3_DJg2qdVyw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_tNbhoqsp8U2z2t54cP0xuw_10_8">1,294</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:10.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:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_B60Sg_-FcE2FWFUaHzIDlg_11_5">293,379</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_FCrps42_ykuWotfU32fFyg_11_8">264,408</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less&#8212;Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_O-IcwE_3_kyf8M0zV-Hllw_12_5">164,825</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_oWwa9hfpQku19ECcdJNTwQ_12_8">147,202</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.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.74%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_LNFtfPgKrUGE_68b8HvB2w_13_5">128,554</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_MHBAIMRX7E-K-OASKVNJuw_13_8">117,206</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">Depreciation expense for the years ended December&#160;31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DepreciationAndAmortization" scale="6" id="Narr_L78N4IxVbUCLev4P_8x1fg">28.4</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DepreciationAndAmortization" scale="6" id="Narr_FH6OaIlNDEi4KL0jOixJtg">27.9</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DepreciationAndAmortization" scale="6" id="Narr_X7yiITFvM0CKorBDtD6g8Q">24.5</ix:nonFraction>&#160;million, respectively.</p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">66</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_Xx3BOR2e3EyMm1mgYnpIfg_cont1"></ix:continuation><a id="_ab877945_20be_4f83_9421_298973a4d4c1"></a><a id="Tc_lz8sdoBl1USowf6BGP5YTA_1_2"></a><a id="Tc_iD10kBaUNE-55suJ6pZ1ZA_2_2"></a><a id="Tc_nPoXlr9FjEC8Jhvwj2qdXQ_2_5"></a><a id="Tc_n7-4pyn-FU-qBQs66Yo0fQ_3_0"></a><a id="Tc_MYFGYmUyF0qPOX551mua3g_3_2"></a><a id="Tc_9rPQIn1Cmke3VhBtHnkCLw_3_5"></a><a id="Tc_Q-LYA4t8hkCu-2CuHs7Wcw_4_0"></a><a id="Tc_xlAwo9j8TEqat-VlzsmqXw_5_0"></a><a id="Tc_45wCCNHZVE-41KKVYM9dMw_6_0"></a><a id="Tc_FiF6sx5E5EGgcvWbdilfnA_7_0"></a><a id="Tc_R2kZRgsSzEiN9L-sNvjeLA_8_0"></a><a id="Tc_QfP8azKuw0OrWHFa_qy3iw_9_0"></a><a id="Tc_tb06O1mmYUaVBkyxNuWMEg_10_2"></a><a id="Tc_DE0yiANHy0Kuaf0d9zeVfQ_10_5"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" id="Tb_8eK59IgITUaCeW6fugVfOw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">8. Detail of Other Current Liabilities</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Tb_05PRxBWN0Ei3Xy7BlcNXcw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Other current liabilities consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.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:2.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:66.84%;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.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><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:29.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;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.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued warranty costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" scale="3" id="Tc_NmpKLHsSi0-z8KwVbvqFWA_3_3">8,969</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" scale="3" id="Tc_jzRyKja2806A2jubEyUvtw_3_6">8,914</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_KWQeqOnu3kOlVDTOtmbLPw_4_3">19,050</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_JwfKWQ9kKE-ifRPQph4oOA_4_6">16,586</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued job losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:AccruedJobLosses" scale="3" id="Tc_zxXSE1_Ir0i1sijrN7gXhA_5_3">8,962</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:AccruedJobLosses" scale="3" id="Tc_IzPgzTU6q0qT4lgjq0SAng_5_6">2,151</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued sales and use tax</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent" scale="3" id="Tc_wLdSqjkwuEaG56b1I4z6QQ_6_3">3,861</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent" scale="3" id="Tc_fCCbv-C1p0SmIRx5EDtq3w_6_6">3,731</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_eJDmSKxkwkKJGjUYY8Y2LQ_7_3">13,734</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_JcOdg_Mj7k-L5vAHaXv6yw_7_6">4,559</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Liabilities due to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:LiabilitiesDueToFormerOwnersCurrent" scale="3" id="Tc_swjlzEz_vUClitEZ9lRLcw_8_3">27,613</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:LiabilitiesDueToFormerOwnersCurrent" scale="3" id="Tc_ATiUzpjljk-y7h0yznm37w_8_6">10,280</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherSundryLiabilitiesCurrent" scale="3" id="Tc_Eap3BXMmPEqRkLtRvTjMZg_9_3">37,211</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherSundryLiabilitiesCurrent" scale="3" id="Tc_0xlxa5HHuUu4j7YNFGWHNg_9_6">45,271</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc_ws6GmUaoNUe7-pJ1t71CTQ_10_3">119,400</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesCurrent" scale="3" id="Tc__A0qwu6g_0iBGkKGOsXQZg_10_6">91,492</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric><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><a id="_fbe24046_799b_490b_bb45_09568dfdc565"></a><a id="Tc_WXriTqN84kqab__GFm21EA_1_2"></a><a id="Tc_cPvqsFH1rEqc7cfvvN14UQ_2_2"></a><a id="Tc_Q-1PUiCJZEGry5daGRnjiw_2_5"></a><a id="Tc_Cwv0SzhpQEqTL752gHmdjw_3_0"></a><a id="Tc_mmgqYzQYVEC7JWBWBYtm8g_3_2"></a><a id="Tc_sd-gkva1wEC0A3YdIPEi9Q_3_5"></a><a id="Tc_bjYV3uwy8ECwBOBdIuMLFQ_4_0"></a><a id="Tc_jmaDPR3KLUSQZcaOdaU4Ww_5_0"></a><a id="Tc_yvQ5imIKP0O8NDLPPnNtGA_6_0"></a><a id="Tc_3S4ndYOEN0SV0r-h6BTTiw_6_6"></a><a id="Tc_1fkWdxkC7UiXLjJ-oKzRrw_7_0"></a><a id="Tc_VcOkvm9txkKdEFKJX8dlpA_8_0"></a><a id="Tc_zv7iWdE_nk-w92CmFDW4Cw_9_0"></a><a id="Tc_hRwjmvi6j0mhvbbdPi2ZKg_10_0"></a><a id="Tc_2aBYLmd8MEyv7xgz_EB2_Q_10_6"></a><a id="Tc_lIH-3P2K_UeyTK0Pib2vqg_11_0"></a><a id="Tc_jrrfv_GEDEuVIBxZrvbCMg_11_2"></a><a id="Tc_BQTM4_iZMkC_6dVlPS55gw_11_5"></a><a id="_236610cd_5b33_44d5_8d6b_3de2ebbf8347"></a><a id="Tc_u_VPNBaZtU-wL-y_lwk3_w_1_0"></a><a id="Tc_NMmjBYAvH0-vuCiskq_rKQ_2_0"></a><a id="Tc_fyoyIdS5oUObV_GC_RdbSQ_2_2"></a><a id="Tc_2U6H9Fh5bEy9qIOVJVNF0w_3_0"></a><a id="Tc_3RWqn8Uq5EiEFX5ebN8EtQ_4_0"></a><a id="Tc_XMXEuHD0oUup_5y4zNDJ2A_5_0"></a><a id="Tc_3ROA9It5PEWTAIfG02XBCg_6_2"></a><a id="_c556eef7_74e1_4b71_97a3_c63b8e1e9401"></a><a id="Tc_nsCyDoC1I0OX23t-N63tlA_1_2"></a><a id="Tc_C5s6A5snpk6vD0BBL9gMTw_2_2"></a><a id="Tc_fZ3NpATSAE6iZeQLB38HZg_2_5"></a><a id="Tc_7vEHBE6rD0iDrSimxueCeQ_2_8"></a><a id="Tc_I48Q3ZVXw0m61FseyIa50A_3_0"></a><a id="Tc_-wodtlF1xUC1wjFFgscruQ_3_2"></a><a id="Tc_lI8lvNNTz0y9hf5KqoRj0Q_3_5"></a><a id="Tc_MzXoAkt-u0CwScPu6RBULQ_3_8"></a><a id="Tc_Op4sCgg5Dk6ZWdpaClrSRg_4_0"></a><a id="Tc_r8LAipRbY06lQr9OA6Jx3A_5_0"></a><a id="Tc_ihK-cCbm60GDul7Vvd7iFQ_5_9"></a><a id="Tc__zWz3nAnOkaltyXsKCp9Uw_6_0"></a><a id="Tc_rk8zlc48uEqVrGK5f_bokg_6_6"></a><a id="Tc_rtu_2aNyp0mYkuyU_lSMzA_6_9"></a><a id="Tc__E_QEygfdEan9w46nLTL0g_7_0"></a><a id="Tc_I413LqNk1ke8FroT4ZFU8Q_8_0"></a><a id="Tc_xPBwwi0lYUWOhFGk7HUX8A_9_0"></a><a id="Tc_xszaCqmjY0WPxR31FXv9bg_9_2"></a><a id="Tc_SvVG9pShCUSJor5iqRGfgA_9_5"></a><a id="Tc_h8rkXQcvpkubwBEEC8Ij0g_9_8"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:DebtDisclosureTextBlock" id="Tb_7L3aoI5DYkC5nkEoquucPw" continuedAt="Tb_7L3aoI5DYkC5nkEoquucPw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">9. Debt Obligations</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfDebtTableTextBlock" id="Tb_hUorjFfIXUuYDRnXL8Fkdw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Debt obligations consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.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;width:1.4%;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.4%;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.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:2.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.4%;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.03%;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.22%;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:70.26%;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.4%;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:27.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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.4%;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="2" style="vertical-align:bottom;white-space:nowrap;width:12.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;">2021 </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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.44%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_QzOTXFUr0ECr-XtpTSwhhA_3_3">220,000</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ngYadPqEmUC_793WwuLXYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_bjOBPTdYS06BvS7J0zsyJQ_3_6">70,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_pinoeEUtm0qR8JVZm8c9pw_4_3">120,000</ix:nonFraction></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:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_w2Uj0_fu50qSf60D4JhNfQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_paS4txhBp0uwhQgF5rMVEw_4_6">135,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_gEl2HLqUiESeZVUcwOWBGA_5_3">47,954</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_87gmMkjc-Ea2tymjomRPyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="3" id="Tc_ainpm754I02p6jd3fF7kIw_5_6">31,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease liabilities (See Note 10)</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FinanceLeaseLiability" scale="3" id="Tc_HQJ371wvYUOuNGWePVKvEw_6_3">266</ix:nonFraction></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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total principal amount</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_t0KKIxfMwUmBDC_Q0J2IPA_7_3">388,220</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="3" id="Tc_pkGTL7EPhEOe_KsgCMSPKg_7_6">236,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" scale="3" id="Tc_ZDQOjp8Vn0GNYLGUSfGuuA_8_3">190</ix:nonFraction>)</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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" scale="3" id="Tc_EsoRVLRQTU6NwQF7_p7rGw_8_6">267</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt, net of unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebt" scale="3" id="Tc_0OTxL3gQa0CfDXN9P6Fp2A_9_3">388,030</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebt" scale="3" id="Tc_FDzEglGzwk-xYnwmezVFQA_9_6">235,733</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;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.4%;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.02%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtCurrent" scale="3" id="Tc_MvE0T9lbAUCogwYDeq5yUQ_10_3">2,788</ix:nonFraction>)</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:1.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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, net</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;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.02%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_HwaOvg1Bx0eLV7s6LxHSHg_11_3">385,242</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtNoncurrent" scale="3" id="Tc_h3utDuzahUaitC0bEAcwYg_11_6">235,733</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" id="Tb_fUjq2c2TlkiO6cjE1FpsYQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">At December&#160;31, 2021, future principal payments of debt are as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.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: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:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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><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></tr><tr><td style="vertical-align:bottom;width:84.53%;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;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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.78%;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: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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</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;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p 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.78%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" scale="3" id="Tc_ZbwQcht9T06wOaFy5hmi1Q_2_3">2,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</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:1.67%;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.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" scale="3" id="Tc_SKjN-vvUMEqdjMmuIY5I6g_3_3">27,981</ix:nonFraction></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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</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:1.67%;margin:0pt;padding:0pt;"><p style="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.78%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" scale="3" id="Tc_kuQ7YQMEjkiqIVB4npoNuw_4_3">35,352</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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:84.53%;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: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:1.67%;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.78%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" scale="3" id="Tc_GPUe0NBrlkC0AEEVJERwyw_5_3">322,099</ix:nonFraction></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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.67%;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.78%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtAndCapitalLeaseObligations" scale="3" id="Tc_s4JGdPcLSkyY-3Ei9OUS2w_6_3">388,220</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:InterestIncomeAndInterestExpenseDisclosureTableTextBlock" id="Tb_7JcvyuKZ5UefIUUTwaxvxw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Interest expense included the following primary elements (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.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:2.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.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:7.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.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.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: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:2.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.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:7.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: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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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="8" style="vertical-align:bottom;white-space:nowrap;width:30.21%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on notes to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseRelatedParty" scale="3" id="Tc_VOv8AEzs-EOCFd8KgOfsyQ_3_3">1,052</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseRelatedParty" scale="3" id="Tc_2t2bAqoudkWOuDfcEgtO9w_3_6">1,354</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpenseRelatedParty" scale="3" id="Tc_-q8ryUFEVkGwxlrPAGNlrA_3_9">1,531</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on borrowings and unused commitment fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts" scale="3" id="Tc_v20P_A02Rk6As8NQNzV99g_4_3">3,371</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts" scale="3" id="Tc_n-AiWc9KWUulw7qcAWamZw_4_6">5,319</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts" scale="3" id="Tc_hWR7WefA4kKnZjJIVmFlww_4_9">6,887</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on interest rate swaps</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:InterestExpenseOnInterestRateSwaps" scale="3" id="Tc_c9uCECBbiU-kellqy9OZmg_5_3">499</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:InterestExpenseOnInterestRateSwaps" scale="3" id="Tc_QmVDIspPZEeA3E51AX40Fg_5_6">338</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FinanceLeaseInterestExpense" scale="3" id="Tc_Clkrxc1E40i-gJTS9mwXHg_6_3">57</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesAmount" scale="3" id="Tc_6tvr6euP40OHZF86EXSRdw_7_3">679</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesAmount" scale="3" id="Tc_3ng8s4GkR0uki6T-RkGUNw_7_6">830</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesAmount" scale="3" id="Tc_saxFx1oi9USdx18fWHLWRg_7_9">512</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of debt financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCostsAndDiscounts" scale="3" id="Tc_po1gPmsCN0iYY-z3X-Rj_w_8_3">538</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCostsAndDiscounts" scale="3" id="Tc_Dc4CQ7_d6E2pLQvP3iad_Q_8_6">544</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfFinancingCostsAndDiscounts" scale="3" id="Tc_qpkWMYqMgUShhgJc9AjTYw_8_9">387</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;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.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.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:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_vIqYLbnDaEiC3TBt4ooItA_9_3">6,196</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_bWsRE4MtbESgjaLtUZ7eEA_9_6">8,385</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_EGikzimDrUWxzafwWfaoFQ_9_9">9,317</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;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></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-size:1pt;font-style:italic;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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility and Term Loan</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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_HTxlJJvlDkCB0aoh_H5byw">600.0</ix:nonFraction> million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_1_6yX_X160OaMlQlIXX9rw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_MzRiToPZpkCSmOd5AgHuLQ">450.0</ix:nonFraction> million and a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_wpTTXOlM3kibatpFqpl_AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_wl_UlGiOMkOBECGFz-f7hQ">150.0</ix:nonFraction> million term loan, and the Facility </p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">67</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_7L3aoI5DYkC5nkEoquucPw_cont1" continuedAt="Tb_7L3aoI5DYkC5nkEoquucPw_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">provides for a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ" decimals="-5" format="ixt:numdotdecimal" name="fix:LineOfCreditBorrowingCapacityAccordionOption" scale="6" id="Narr_d-vK7-b0KUar4sMC8AILiA">150.0</ix:nonFraction> million accordion or increase option for the revolving portion of the Facility. As of December 31, 2021, the Facility capacity was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_oppgyQDECk2oTRBo51MDtg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_79IWie3khkeTeAERpzVo5Q">570.0</ix:nonFraction> million, as the term loan was paid down by $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_Q1OqB17gXEumo0a39qVC5w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfSeniorDebt" scale="6" id="Narr_Ftj1P9kWPEiHWlF6PfkIKQ">30.0</ix:nonFraction> million since the inception of the Facility. The amended Facility also includes a sublimit of up to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_pF_M-6Fcz0KYjaZtcu1fRg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_5JbjjWK-90ylk-tvX63KFQ">160.0</ix:nonFraction> million issuable in the form of letters of credit. The Facility expires in January 2025 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 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. In 2019, we incurred approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_RJ8mDCkkMk6GLBc3oTSXlw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfFinancingCosts" scale="6" id="Narr_HifI1TKzD0uCMnuAF_Y_bA">1.4</ix:nonFraction> million in financing and professional costs in connection with an amendment to the Facility, which are being amortized over the remaining term of the Facility. Of this amount, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_axranmOZHUKK7DGCmEVbEw" decimals="-5" format="ixt:numdotdecimal" name="fix:PaymentsOfFinancingCostsTermLoan" scale="6" id="Narr_uFOCAQo6RU6HOBfoag1Q2Q">0.4</ix:nonFraction> million is attributable to the term loan and is being amortized using the effective interest method. For the term loan, we are required to make quarterly payments increasing over time from <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_12_19_2019_To_12_19_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_PQDkiwC6d0qdS8fcKajinQ" decimals="4" format="ixt:numdotdecimal" name="fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" scale="-2" id="Narr_szKuWktxsUaQDf4CSJeGzA">1.25</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_12_20_2019_To_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_dMpgsjhRT0CYASNM6Dw1fw" decimals="4" format="ixt:numdotdecimal" name="fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" scale="-2" id="Narr_hprNB--j9kWo7sZClfRxJQ">3.75</ix:nonFraction>% of the original aggregate principal amount of the term loan, with the balance due in January 2025. As of December&#160;31, 2021, we had $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DebtLongtermAndShorttermCombinedAmount" scale="6" id="Narr_ucvLEmdeFUGazzw-kL1LWA">120.0</ix:nonFraction> million principal outstanding on the term loan, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCredit" scale="6" id="Narr_Wrxqbow3yEeSUcA6TW4yLQ">220.0</ix:nonFraction> million of outstanding borrowings on the revolving credit facility, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_K-s2qpjvy0WsongYAUPpgA">53.5</ix:nonFraction>&#160;million in letters of credit outstanding and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" id="Narr_5tb5Xlz3ikGPg4hQDrHXEg">176.5</ix:nonFraction>&#160;million of credit available.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Collateral</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A common practice in our industry is the posting of payment and performance bonds with customers. These bonds are offered by financial institutions known as sureties and provide assurance to the customer that in the event we encounter significant financial or operational difficulties, the surety will arrange for the completion of our contractual obligations and for the payment of our vendors on the projects subject to the bonds. In cooperation with our lenders, we granted our sureties a first lien on assets such as receivables, costs and estimated earnings in excess of billings, and equipment specifically identifiable to projects for which bonds are outstanding, as collateral for potential obligations under bonds. As of December&#160;31, 2021, the book value of these assets was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" scale="6" id="Narr_plTtsqqyzUigQmRR31FVGQ">98.9</ix:nonFraction>&#160;million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Covenants and Restrictions</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. Credit Facility Adjusted EBITDA is defined under the Facility for financial covenant purposes as net earnings for the <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA" decimals="INF" format="ixt-sec:numwordsen" name="fix:DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" scale="0" id="Narr_P9u0O2dI1kycwdkU_xDxfw">four</ix:nonFraction> quarters ending as of any given quarterly covenant compliance measurement date, plus the corresponding amounts for (a)&#160;interest expense; (b)&#160;provision for income taxes; (c)&#160;depreciation and amortization; (d)&#160;stock compensation; (e) other non-cash charges; and (f)&#160;pre-acquisition results of acquired companies. The Facility&#8217;s principal financial covenants include:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Total Leverage Ratio&#8212;</i>The Facility requires that the ratio of our Consolidated Total Indebtedness to our Credit Facility Adjusted EBITDA not exceed <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtCovenantEffectiveDateAxis_fix_ThroughMaturityMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_OPi3mk8UhEyWfglP37eGFQ" decimals="0" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantLeverageRatio" scale="0" id="Narr_7qrBWW8BFU66h7OWzgH6Ag">3.00</ix:nonFraction> to 1.00 as of the end of each fiscal quarter. The total leverage ratio as of December&#160;31, 2021 was <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="2" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantLeverageRatio" scale="0" id="Narr_lJNTobP-M0uT0lmj_Qhcug">1.2</ix:nonFraction>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Fixed Charge Coverage Ratio&#8212;</i>The Facility requires that the ratio of (a) Credit Facility Adjusted EBITDA, less non-financed capital expenditures, provision for income taxes, dividends and amounts used to repurchase stock when the Company&#8217;s Total Leverage Ratio exceeds <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="0" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantFixedChargeCoverageRatio" scale="0" id="Narr_hDOAbjAnZ0uJC-MwLlR2rg">2.00</ix:nonFraction> to 1.00 to (b) the sum of interest expense and scheduled principal payments of indebtedness be at least <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_nClKzh0mOk60_cNUnDRYHg" decimals="1" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantFixedChargeCoverageRatio" scale="0" id="Narr_LBNFkWuBaESIOb5D9frh8w">1.50</ix:nonFraction> to 1.00. Credit Facility Adjusted EBITDA, capital expenditures, provision for income taxes, dividends, stock repurchase payments, interest expense, and scheduled principal payments are defined under the Facility for purposes of this covenant, to be amounts for the <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA" decimals="INF" format="ixt-sec:numwordsen" name="fix:DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" scale="0" id="Narr_RfnU2hQQNEi03QpjCajWkg">four</ix:nonFraction> quarters ending as of any given quarterly covenant compliance measurement date. The fixed charge coverage ratio as of December&#160;31, 2021 was <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="INF" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantFixedChargeCoverageRatio" scale="0" id="Narr_2kzUV9rzSEaP7eZ2WB7jig">42.0</ix:nonFraction>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Other Restrictions&#8212;</i>The Facility permits acquisitions of up to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA" decimals="-5" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" scale="6" id="Narr_3bNSm-K1mkWJMKoPMW1LeA">5.0</ix:nonFraction> million per transaction, provided that the aggregate purchase price of such an acquisition and of acquisitions in the same fiscal year does not exceed $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA" decimals="-5" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" scale="6" id="Narr_o-dNR-NvvkqpVz71PBAdcA">10.0</ix:nonFraction> million. However, these limitations only apply when the Company&#8217;s Total Leverage Ratio is greater than <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_srt_StatementScenarioAxis_fix_ScenarioCovenantRequirementMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_PvPVAIJ0xE6eAUdS3G69fQ" decimals="1" format="ixt:numdotdecimal" name="fix:DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" scale="0" id="Narr_-mRvwomTq0irlviHLCGQXA">2.50</ix:nonFraction> to 1.00.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">While the Facility&#8217;s financial covenants do not specifically govern capacity under the Facility, if our debt level under the Facility at a quarter-end covenant compliance measurement date were to cause us to violate the Facility&#8217;s leverage ratio covenant, our borrowing capacity under the Facility and the favorable terms that we currently have could be negatively impacted by the lenders.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">We were in compliance with all of our financial covenants as of December&#160;31, 2021.</p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">68</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.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;max-width:100%;position:relative;"><a id="_989ed8d0_e78a_4c0b_a5f9_17aed01d3a1a"></a><a id="Tc_MtIQZ-aeu06GbG7QZpwDnA_1_0"></a><a id="Tc_AsmQBqxsMkODqQQRVRyDWQ_2_0"></a><a id="Tc_Cfv0cnD4DkGAnTSc3lk_Pw_3_0"></a><a id="Tc_M2SO1LggLki0pfkHSOKPog_4_0"></a><a id="Tc_1K7WWOUOL0OLXzYRwlWb9Q_5_0"></a><a id="Tc_EWV-I6MH3kWO-q8Z_HE5LA_1_2"></a><a id="Tc_5HnaEgJBDUW7kORIKsC_JQ_2_2"></a><a id="Tc_lBEK1TogjE-gp_ZwwIPQrA_3_2"></a><a id="Tc_9-WIheb6bEGB4WY_NkLrdw_3_4"></a><a id="Tc_0DwP-5NfhkKfzbH9U9MqLw_3_6"></a><a id="Tc_DLmnZ48T5kuZM3vcDqzonA_3_8"></a><a id="Tc_Elr_pcw9aEqjf7embDB9qQ_4_0"></a><a id="Tc_iSr7twirl0C8zoKGFnnTww_5_0"></a><a id="Tc_xkY6OxeVG0Ox-fBhQJMRDg_5_3"></a><a id="Tc_ig1zit0UeEiSJCBO6GUaHw_5_5"></a><a id="Tc_BbzA1Fr8Q0Sr76QKnYifqg_5_7"></a><a id="Tc_dh_-hIg88kal2H-1a2hsHQ_5_9"></a><a id="Tc_KJdD-cPcmEq-_EQt-_u56w_6_0"></a><a id="Tc_a2qiTsf3K06WS24aAoJmOQ_6_3"></a><a id="Tc_hypx80kO7EWTV-q7xRyy2A_6_5"></a><a id="Tc_zLRkaAdJxE6WnKX4yccMPw_6_7"></a><a id="Tc_1HBDpCVkh0GNVfrXzSDl6w_6_9"></a><a id="Tc_YOabXqDaj0OtmgonOeUvkA_7_0"></a><a id="Tc_pJsBYOJ_Yk21Ja0US0m5nQ_7_3"></a><a id="Tc_4NfEfz0rt0-DSMvTsfheAg_7_5"></a><a id="Tc_rj5f5dQMA0SZoEtyS9UH1A_7_7"></a><a id="Tc_aFkaGIRKikCC2lCQuHEhyg_7_9"></a><a id="Tc_1ztm3-qECU2bgiPEbMQeDA_8_0"></a><a id="Tc_Z8pPfx-t3kecx7Px6A1xrQ_8_3"></a><a id="Tc_mtWe6cJmXEWKF2nqjBI6Iw_8_5"></a><a id="Tc_tIkP25O4bESRtI2-v7Gsbw_8_7"></a><a id="Tc_fjQNylY_KU2wOYmTEugwVQ_8_9"></a><ix:continuation id="Tb_7L3aoI5DYkC5nkEoquucPw_cont2" continuedAt="Tb_7L3aoI5DYkC5nkEoquucPw_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Interest Rates and Fees</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">There are <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA" decimals="INF" format="ixt-sec:numwordsen" name="fix:DebtInstrumentInterestRateOptionsNumber" scale="0" id="Narr_Q3IZxE5_60S02WtVa8E2dQ">two</ix:nonFraction> interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. Additional margins are then added to these <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA" decimals="INF" format="ixt-sec:numwordsen" name="fix:DebtInstrumentInterestRateOptionsNumber" scale="0" id="Narr_TiNe26LweUeK0x5LIXwSGw">two</ix:nonFraction> rates. Under the Base Rate Loan Option, the interest rate is determined based on the highest of the Federal Funds Rate plus <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_oQU63Ktyv0SWacRaWhk-hw">0.5</ix:nonFraction>%, the prime lending rate offered by Wells Fargo Bank, N.A. or the one-month Eurodollar Rate plus <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_WuNx5j01L0qBELrvWAmL3g">1.00</ix:nonFraction>%. Under the Eurodollar Rate Loan Option, the interest rate is determined based on the one- to six-month Eurodollar Rate. The Eurodollar Rate corresponds very closely to rates described in various general business media sources as the London Interbank Offered Rate or &#8220;LIBOR.&#8221; Additional margins are then added to these rates. The additional margins are determined based on the ratio of our Consolidated Total Indebtedness as of a given quarter end to our &#8220;Credit Facility Adjusted EBITDA,&#8221; which shall mean Consolidated EBITDA as such term is defined in the credit agreement, for the <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA" format="ixt-sec:durwordsen" name="fix:DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" id="Narr_O699EYmYZkyq3K91Z1Z4Fg"><span style="white-space:pre-wrap;">twelve months</span></ix:nonNumeric><span style="white-space:pre-wrap;"> ending as of that quarter end.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The interest rates under the Facility are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. For illustrative purposes, the following are the respective market rates as of December&#160;31, 2021 relating to interest options under the Facility:</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfFloatingInterestRateBasesTableTextBlock" id="Tb_wm-pz_eqHEODvdX-G_nOww" escape="true"><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:88.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.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:7.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Base Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;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.58%;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:1.63%;background:#cceeff;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:88.65%;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;">Federal Funds Rate plus <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_dtoU1VeH10-Z1v5X7rFETw">0.50</ix:nonFraction>%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;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.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;"><ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hOTR_7DRhEquG4W5z7ClIA" decimals="4" format="ixt:numdotdecimal" name="fix:DebtInstrumentMarketRate" scale="-2" id="Tc_OqfkcTOMb0quGDvNLqrZZw_2_2">0.57</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Wells Fargo Bank, N.A. Prime Rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"><ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember__xmO7ZpnR0edSVgVwQ6_2g" decimals="4" format="ixt:numdotdecimal" name="fix:DebtInstrumentMarketRate" scale="-2" id="Tc_mKCedzIzpk6kashZdM9APQ_3_2">3.25</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">One-month LIBOR plus <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_1llkn6Uq0kGs6mltkhMAEw">1.00</ix:nonFraction>%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"><ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_jDK33UXujUm3Sh_8EG7ZCA" decimals="4" format="ixt:numdotdecimal" name="fix:DebtInstrumentMarketRate" scale="-2" id="Tc_ZCa7jojV202_R-WbxwoBjw_4_2">1.10</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Eurodollar Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.58%;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.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_P_RvjWuavkOfFwz2e0n1dQ" name="us-gaap:DebtInstrumentDescriptionOfVariableRateBasis" id="Tc_0c7fLFg2a0-nY3sXUFJWtw_6_0">One-month LIBOR</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"><ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_yGK5mhQa0kWTAf8_VyhZag" decimals="4" format="ixt:numdotdecimal" name="fix:DebtInstrumentMarketRate" scale="-2" id="Tc_NPQiGZqtI0aNqyuiGbwdZw_6_2">0.10</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_HwNUN2Aqh02ex4HfRer4uA" name="us-gaap:DebtInstrumentDescriptionOfVariableRateBasis" id="Tc_H9g-eE1uSUu-Y4HzjYAR9A_7_0">Six-month LIBOR</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"><ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_UVJ4gzu9Pkeji3DxTyIPfA" decimals="4" format="ixt:numdotdecimal" name="fix:DebtInstrumentMarketRate" scale="-2" id="Tc_qMn_fBAgqk6SNJcD4xG-vA_7_2">0.34</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></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 just the same as actual borrowings. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. Letter of credit fees and commitment fees are based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfAdditionalMarginsTableTextBlock" id="Tb_xJ3NZ_AX1EagWF2qcxknWQ" escape="true"><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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:10.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.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:7.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:2.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:7.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:2.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:10.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.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></tr><tr><td style="vertical-align:bottom;width:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;margin:0pt;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&#160;Total&#160;Indebtedness&#160;to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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;">Credit&#160;Facility&#160;Adjusted&#160;EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.03%;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;1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.98%;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;1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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: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;">2.50&#160;or&#160;greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.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:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.76%;background:#cceeff;margin:0pt;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:50.9%;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:10.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_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_az6CzfTUoUWVkPoVp6fwSw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_ZeQlnnb_lESMkbbBXSOB7A_5_2">0.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hyndtCapbkikNBx4-T5mxg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_54smBsVkGEeLCwq24ThCJg_5_4">0.50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_gcCzQltf0UCsmXZlxfcb6A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_LI2I-LVbcE-kxlY6QRSJtQ_5_6">0.75</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_6ikDRMVBxUOW-4NlI795gw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_X_qZKOahckqB8PQ3ee663A_5_8">1.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Eurodollar Rate 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:10.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_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Lq7kpwH1MUqsTAnspI_lcg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc__strpIKt6EybiV94ote9ig_6_2">1.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_2TOFd-VRgECF_I-EMtJ9xw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_YFOgoMDoxkWzpbbcscDYwQ_6_4">1.50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Tj-eh9hBLkKRRnWvkWGArA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_Bo6ljV31uE2RD720a1lO1Q_6_6">1.75</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_eSZn6fMmsEi0k_rZehIQ5A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Tc_1wIwK_3n-0-eHpoBcb6Log_6_8">2.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</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:10.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_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q" decimals="INF" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesPercentage" scale="-2" id="Tc_qouTb_tQ4kehe8IDAZzqWQ_7_2">1.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p 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.98%;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw" decimals="INF" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesPercentage" scale="-2" id="Tc_jewxcrGAE0-s2fiUlOEKew_7_4">1.50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p 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.98%;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A" decimals="INF" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesPercentage" scale="-2" id="Tc_vh-tweZ2MkSaI20HI5MmGA_7_6">1.75</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p 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.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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg" decimals="INF" format="ixt:numdotdecimal" name="fix:LetterOfCreditFeesPercentage" scale="-2" id="Tc_l88hEG40fUGT2z4fqJb3gQ_7_8">2.00</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commitment fees on any portion of the Revolving Loan capacity not in use for borrowings or letters of credit at any given time</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:10.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_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Tc_sEn4MtEK0E2NzdOtXynbIg_8_2">0.20</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Tc_SXDZdO2OMUuymL37mmo8-w_8_4">0.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Tc__7CDsJxkrkypiF7bBn9sIQ_8_6">0.30</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" id="Tc_C6CDqLPKBUi1bLNAuZzq7g_8_8">0.35</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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:12pt 0pt 12pt 0pt;">The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" scale="-2" id="Narr_RVb-EJfPcU-uCgqRC4vWgQ">1.4</ix:nonFraction>% as of December&#160;31, 2021. The weighted average interest rate applicable to the term loan was approximately <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" scale="-2" id="Narr_ED58z7OVd0GeXDkbF__O3A">1.4</ix:nonFraction>% as of December 31, 2021.</p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">69</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_7L3aoI5DYkC5nkEoquucPw_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">As part of the consideration used to acquire <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw" decimals="INF" format="ixt-sec:numwordsen" name="fix:CumulativeNumberOfCompaniesAcquired" scale="0" id="Narr_CF6BvZJ4sE24ZG4BRo9Ryg">ten</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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_Y8ccIRiVVkmdlLRZNTLTYg">48.0</ix:nonFraction> million as of December 31, 2021. In conjunction with the acquisition of MEP Holdings in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_knkQ2sIwZE6uatG5hRjH8A">7.6</ix:nonFraction> million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_HcWNkNBK2U6BD739DZvtnQ">2.5</ix:nonFraction>%. The principal is due in equal installments in April 2024 and April 2025. In conjunction with the acquisition of Ivey in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_Gaz13lQbGEKDaMPmoSQRWw">8.0</ix:nonFraction> million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_m60epLoslki_WNIOI6dv0A">2.5</ix:nonFraction>%. The principal is due in January 2025. In conjunction with the acquisition of Amteck in the third quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_MyggrL7VF0-OmcmY4arz2g">10.0</ix:nonFraction> million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_kYasGQBDn0mfaINuLaMgvA">2.5</ix:nonFraction>%. The principal is due in equal installments in October 2024 and October 2025. In conjunction with the acquisition of a Texas electrical contractor in the second quarter of 2019, we issued a promissory note to former owners with an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_ZYQNsap5Bk2niFhhM8zAag">2.0</ix:nonFraction> million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_WphEs9vYzUWe0_Q7PlVPpw">4.0</ix:nonFraction>%. The remaining principal is due in April 2023. In conjunction with the <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_NotesPayableOtherPayablesMember_3TceZDXMdk28FCIkhn0bqQ" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:NumberOfBusinessesAcquired" scale="0" id="Narr_Rq1JHXGjbEqXHhvgw9iKUQ">six</ix:nonFraction> remaining acquisitions, we issued notes to former owners with an outstanding balance of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_TCGtcfu8HUu1XCBfxeU4QA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:NotesAndLoansPayable" scale="6" id="Narr_jQNX1hPHwEmKXa6C2HnWsg">20.4</ix:nonFraction> million as of December 31, 2021 that bear interest, payable quarterly, at stated interest rates ranging from <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_SZhX28GSYEOR7KY9ezPUDA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_sxGLnNto9UqcBnuwS3aqZg">2.3</ix:nonFraction>% - <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_J7SWYOC9fUCHryuapvnRqA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="Narr_QgKQhVJ9UEC1iPUZ2oXsmg">3.5</ix:nonFraction>%. The principal amounts are due between April 2022 and April 2025.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:LesseeOperatingLeasesTextBlock" id="Tb_N8cALErS8E-mK1E3CXET8Q" continuedAt="Tb_N8cALErS8E-mK1E3CXET8Q_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">10. Leases</b></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:LesseeLeasesPolicyTextBlock" id="Tb_TnvrQzaegUOQ_ymd3hsAhQ" continuedAt="Tb_TnvrQzaegUOQ_ymd3hsAhQ_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 are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. As of December 31, 2021, the lease liabilities associated with these <span style="-sec-ix-hidden:Hidden_FgMkO2rf00CIiBtTbwWcSQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">finance leases</span></span> were $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FinanceLeaseLiability" scale="6" id="Narr_3DzRev5OqEacNO8QQT3FRw">0.3</ix:nonFraction> million. Leases with an initial term of 12 months or less are not recorded in the 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 some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_iBvM-FKNKUm93lGyaiiVKg">11.9</ix:nonFraction> million in 2021, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_LOna-0SLD0aheGjzvGxOPA">7.7</ix:nonFraction> million in 2020 and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="fix:VariableLeaseAndShortTermLeaseCost" scale="6" id="Narr_Uk5liO_ZBk2c3Dd9Wbd1Qg">8.4</ix:nonFraction> million in 2019. 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 December 31, 2021 and 2020 was <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Narr_VkJ35jRvTEySe23SgcpvQg">4.0</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Narr_vUIdlsVWykevZ5eFD9M8wA">4.2</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 years ended December 31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_jVFbhvNID02gW872EhO8Dg">34.2</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_0DM7d2bYLUmiNtYwP_Jhrw">28.2</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseExpense" scale="6" id="Narr_sg43pUEfJEe9DRm_9X3-xA">24.8</ix:nonFraction> million, respectively.</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 lease terms generally range from <span style="-sec-ix-hidden:Hidden_Jy-T07AOW0GkRD4aV4OpIQ;"><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_12_31_2021_srt_RangeAxis_srt_MaximumMember_nlhjt_7QjEKUrazO_uTBYw" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseTermOfContract" id="Narr_wCKUVvErDEWbMMFgz9tH3A">ten years</ix:nonNumeric>. Some leases include <ix:nonFraction unitRef="Unit_Standard_Option_dsaBN6XxaEiIib8B3c8M0w" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA" decimals="INF" format="ixt-sec:numwordsen" name="fix:NumberOfOptionsToRenew" scale="0" id="Narr_e9lSZFsgqkC-iqc4T4Y1CQ">one</ix:nonFraction> or <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt:booleantrue" name="us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend" id="Narr_Hy3X7pzGg0iJhyPGDYqYWA">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. The weighted average remaining lease term for our operating leases was <ix:nonNumeric contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Narr_xlEIMHpXVUWaA4EEqXbU_w">8.7</ix:nonNumeric> years at December 31, 2021 and <ix:nonNumeric contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Narr_MeZZSfuTTUC7UeFodfxZkQ">7.5</ix:nonNumeric> years at December 31, 2020.</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;">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 years ended December 31, 2021, 2020 and 2019 was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_WuodgcofLEWWf6mIaEhIzg">4.9</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_hLT7K59ffkqo_DTpQHuj8Q">4.2</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRent" scale="6" id="Narr_XBg2SgRxTkS_6B6ZhLwVag">3.7</ix:nonFraction> million, respectively.</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;">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.</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></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">70</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.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;max-width:100%;position:relative;"><a id="_4e7019a3_bcb7_46ca_a861_c67335983475"></a><a id="Tc_asgygsMHtkyhL0D5ksCu4Q_1_1"></a><a id="Tc_NJfqAaO6ukSi36ilBJurLQ_1_4"></a><a id="Tc_3xThZZPyAEmCpIGhs28yMQ_2_0"></a><a id="Tc_qP_1VyQ9A0akTKyPrvC6Xw_2_1"></a><a id="Tc_JxCJ-V04MESuDy99N49JxQ_2_4"></a><a id="Tc_J2aYLcV_NkehjR0yhNh5vQ_3_0"></a><a id="Tc_ZXtXKzco8ESRlwDPthLX0w_4_1"></a><a id="Tc_jHoXpMdLxEKA7H9VasPocQ_4_4"></a><a id="Tc_-FLf0VvvqE2AyxUFPqY_dw_5_0"></a><a id="Tc_yg4CEF54rkSx_6ZoJXsTMQ_6_0"></a><a id="Tc_5JCMu-LZkUavOar0SH2hjQ_6_1"></a><a id="Tc_gtC7V_1B8UWwUmOM8IhZ-Q_6_4"></a><a id="_1a654d12_e14b_445f_adff_33b5d4b0f7d6"></a><a id="Tc_sWDRyVP4NU-tM43oNpatoA_1_0"></a><a id="Tc_sOLj1tJOxkK-MGbKgIGWBg_2_0"></a><a id="Tc_KCd3YdrAsk-z6dyOJX85iw_2_2"></a><a id="Tc_4GY2C5JKqkGzNfGDOg39dw_3_0"></a><a id="Tc_x_TmRrkMxUGCh24OMJuwiA_4_0"></a><a id="Tc_yUXc6klbtkWucpaGxKVUzw_5_0"></a><a id="Tc_3eFCm2N1WEmKl0GRmu8aaQ_6_0"></a><a id="Tc_432dudTfk0OI3i_NcP9Mhw_7_0"></a><a id="Tc_4JUFvgOAykCfjHYThZpDAQ_8_0"></a><a id="Tc_SRPVTLgnhkmHVnwzgoWc8w_9_0"></a><a id="Tc_w3p3mJ90tUGebZ9ZIt-Ibg_10_0"></a><a id="Tc_d4QyVLzMgUqUMRgEz6I_RA_10_2"></a><a id="_f401af20_cba5_4ccf_9281_a17f6a02ac2e"></a><a id="Tc_sUewnyacUUKvY-EjvFsuZA_1_1"></a><a id="Tc_E6dJEyQBak2ZPLxCMneung_2_1"></a><a id="Tc_Pyz0FhKUn0GTz2f_oJDzSg_2_4"></a><a id="Tc_7-dMbuw57kKlLJAg5RCqjQ_3_0"></a><a id="Tc_waRB4cThYU-m7976w7XYLA_3_1"></a><a id="Tc__3aqnRrhpkWJQ9lmS-b2VA_3_4"></a><a id="Tc_seTNYMuNkUWUiu2znhrYGA_4_0"></a><a id="Tc_RyFQDcgWYUCcw5sSUiOZ0g_4_1"></a><a id="Tc_uzC3if1zbEibfl_zCYjudA_4_4"></a><ix:continuation id="Tb_N8cALErS8E-mK1E3CXET8Q_cont1"><ix:continuation id="Tb_TnvrQzaegUOQ_ymd3hsAhQ_cont1"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" id="Tb_HqruvE6bvkeI056meruUuQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Finance lease right-of-use assets are included in &#8220;Property and equipment, net,&#8221; and current and long-term finance lease liabilities are included within &#8220;Current maturities of long-term debt&#8221; and &#8220;Long-term debt, net,&#8221; respectively, in the Consolidated Balance Sheet. 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:80%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.21%;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: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:14.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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: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:14.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></tr><tr><td style="vertical-align:middle;width:61.21%;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:17.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;">December 31, 2021</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: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.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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_6YinEK21e0izTPon87oe3Q_2_2">124,756</ix:nonFraction></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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_B0Gh3sxE-EOPUi7CZFtGkA_2_5">94,727</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;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:61.21%;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_ZoYV9Ak1x0qoBQBxKtcfzA;"><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.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:14.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_XqoXPMpfxUOoXEnWDRroHA_4_2">19,050</ix:nonFraction></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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_zJ-7N8zrUkyXLxMFt83L2Q_4_5">16,586</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_wgmz64O7NUWKoGtSu3qhaw_5_2">107,701</ix:nonFraction></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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_tm7_Z8an3UC2iUWpooSsww_5_5">80,576</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.03%;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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_TmTNfH_obU-vjYAYUxDBhQ_6_2">126,751</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.32%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_cJPcLya3x0G48kXPUnut1A_6_5">97,162</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><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Tb_SjjC-GXKA0y7-IT4ivMLTw" 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 as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.66%;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;width:1.66%;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;width:10.4%;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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.66%;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.4%;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.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;margin:0pt;padding:0pt;"><p 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.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" id="Tc_Xk8wcOqfgEOfC-uNK5NoIA_2_3">23,729</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="Tc_W2taTApT00Cf-L0KySkEXg_3_3">21,142</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="Tc_a6VOmA3-K0aJFgnXGgE6Wg_4_3">18,738</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="Tc_Yv8pXXoq70KkiyWV1xBWwQ_5_3">17,642</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" id="Tc_QsLFj8z2dki4fx4-Gu6FWw_6_3">14,631</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" scale="3" id="Tc_5h-FZKSCU0e1S-Y5VUrGVg_7_3">55,161</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="Tc_6m9ujoTjekCScuDXCCiqxA_8_3">151,043</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" id="Tc_jk7CacD5N02bp5Ek0GQFLg_9_3">24,292</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_KU-Vu0KgaUCto0FGz426cg_10_3">126,751</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><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" id="Tb_IYqGx3djBkqjhjMGN0DLkg" 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:66.86%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:2.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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;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:15.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;">2020</b></p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_XRc8rpeHtEuFoOdzrn0JXg_3_2">22,232</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;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:13.53%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_54sP5AbD60Wv-lW7UbaU6A_3_5">20,443</ix:nonFraction></p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_n4wMkKXQ6UuZYXXn_ZV5mA_4_2">47,621</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_Nm8BOUCUTk2gstKtv5mXRA_4_5">27,346</ix:nonFraction></p></td></tr></table></ix:nonNumeric></ix:continuation><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:continuation><a id="_57e23373_b799_4193_81c3_83df4bb3f8bf"></a><a id="_dacbb3df_d168_4601_8341_13ff12adba02"></a><a id="_6c8601d2_9d42_4ac0_b76a_109fa5385756"></a><a id="_bb918883_e3b0_4460_a3f4_6018ca27720a"></a><a id="_34395bba_d3d8_41db_8372_1b68f221cba9"></a><a id="_55ba4eef_d667_4a4d_b4a6_a4cf63e39539"></a><a id="_867a758e_b58d_42f7_97c3_8c3a886b0f2b"></a><a id="_55936c73_25e8_42d7_854a_e38caf93942b"></a><a id="_ffc2568a_74e0_4e13_854a_21f3b05188f7"></a><a id="_1776a327_552d_43a2_a977_72b4ef609696"></a><a id="_11e67b5f_163c_4e62_8686_19bf7492f591"></a><a id="_6b8b79e5_b591_47bc_be4b_a681d98dd488"></a><a id="_e1a77ba4_f4b5_49a7_94c1_0dd5036ec3bb"></a><a id="_cdc58a48_1c7c_4430_9251_210343fce100"></a><a id="Tc_HKVk63xf-0aHVrBCcl1uHA_1_2"></a><a id="_b4d18c43_94e9_4a7b_b344_09e239254e2c"></a><a id="Tc_PLcCFue9nUmUYwrpeDtEXg_2_2"></a><a id="Tc_cjv_fk-FCUuAeAV2oPaYPA_2_5"></a><a id="Tc_aNjDS8sK9kmuYHZHYfq5dw_2_8"></a><a id="_288b1033_37e2_4975_9e04_8a5c0e6ee453"></a><a id="Tc_ahqsT_xgcEC9ORSQH4dE1w_3_0"></a><a id="_542d4f13_629f_495d_85b6_9525871eb71c"></a><a id="Tc_4tlDrL3bXk-3CohU8bZ9nQ_4_0"></a><a id="Tc_Lvs847Tb6UmJiqGOgx4tZw_4_2"></a><a id="Tc_6AQqi9fCHUanuvz7FYOvLQ_4_5"></a><a id="Tc_xeZ8Q52NJE-wjvUMaitDuA_4_8"></a><a id="_4d7af5ac_7eef_40a5_8efd_0b3d3c5c4ef1"></a><a id="Tc_94R0shwqQ0uC2_vAYDReHQ_5_0"></a><a id="_ad7d1b74_5d65_44c9_b1ad_cf9faed6b50b"></a><a id="Tc_Uv62rVikR0uTWS7rptvvXg_6_0"></a><a id="_77bc3045_082a_4a05_95e0_cf84c53cd827"></a><a id="Tc_Vt_3bzy0M0i7gTS50aX5bg_7_0"></a><a id="_a20a20e8_4bcb_47dc_b2db_9235c7b35ed3"></a><a id="Tc_hML78VwpZEq65OgEz3RwMw_8_0"></a><a id="_229f531e_71e4_4ca2_9471_be20d6dd0b38"></a><a id="Tc_KNFcX3tCdUaCd1CfKOVDww_9_0"></a><a id="_f097f406_05c6_4337_b4be_9d3550ccfb6a"></a><a id="Tc_07GIjj30y0Kz9oX1RrxY2Q_10_0"></a><a id="_158771a4_8596_476f_a119_7b4c36d91870"></a><a id="Tc_uhTZyl26X0S6NkLAFmjyEg_11_0"></a><a id="Tc_m0wuP0bcYEWCUIshxsk54w_11_2"></a><a id="Tc_SBH0gQMtT0uL8ffgoqi7CA_11_5"></a><a id="Tc_w3pUvAsmjEmo2QIdr7aviA_11_8"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:IncomeTaxDisclosureTextBlock" id="Tb_LRXZfVndo0O8GLSwycVbYQ" continuedAt="Tb_LRXZfVndo0O8GLSwycVbYQ_cont1" escape="true"><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 0pt 12pt 0pt;"><b style="font-weight:bold;">11. Income Taxes </b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Provision for Income Taxes</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="Tb_KwuNvxSuP0iWVOmFBABGdw" continuedAt="Tb_KwuNvxSuP0iWVOmFBABGdw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our provision for income taxes relating to continuing operations consists of the following (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:96.45%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.5%;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.43%;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.51%;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:7.45%;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.42%;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.51%;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:7.45%;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.43%;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.53%;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:7.45%;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.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></tr><tr><td style="vertical-align:bottom;width:64.5%;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.43%;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="8" style="vertical-align:bottom;white-space:nowrap;width:31.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;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.43%;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.97%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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.97%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;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.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current tax provision&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" id="Tc_XRaIjGM4u0y--nSvf3SMaA_4_3">31,283</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" id="Tc_WEPUdQ3lu0aGcCT-Z7dRLw_4_6">36,556</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" id="Tc_7IUrDEzlG02K-CTk-_D7mQ_4_9">33,281</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="Tc_8N39U4u8e0C28YMmvcr41Q_5_3">8,741</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="Tc_eP8OzzJ4LEqF8jBRjBAsNg_5_6">12,798</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="Tc_qAAvohm320KM6To23U1AMw_5_9">8,388</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_2CW-i_A47UemKrdp6FdapA_6_3">40,024</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_ckcxH6xg80urYNRzpao_lQ_6_6">49,354</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_petRDbCnF0eO5MPxhUtAKg_6_9">41,669</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax provision (benefit)&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p style="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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" scale="3" id="Tc__8lt_1gfe0uVn-LZdlgB-Q_8_3">6,197</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p style="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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_APlcikuZWUCGouFUvmOQyw_8_6">5,483</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p style="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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_7pygU9Fqf0ONbX_cqEJb3g_8_9">3,750</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" id="Tc_ECCmwm5EKEKp9fpYlOu8ug_9_3">705</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_vdSscncabk-nArrKjWuWAg_9_6">2,470</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> (<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_6IGOqU3OZ0ul4GTEbOSM2w_9_9">501</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit" scale="3" id="Tc_bPXhRwi6v02Ej5V95J1hhw_10_3">6,902</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit" sign="-" scale="3" id="Tc_riv9r8mxuEKqOTo0sQ8z-Q_10_6">7,953</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit" sign="-" scale="3" id="Tc_K0SVGT_0kUmnkDxxl1cN1w_10_9">4,251</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_5jAWCzypAkKivET4twBkug_11_3">46,926</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_BGvuj-23XEOOwUq3riJn-A_11_6">41,401</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_-9QQBsRpGkGYAITAkYHvLA_11_9">37,418</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">71</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.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;max-width:100%;position:relative;"><a id="_4b2b7a0b_8d8b_4301_b800_32426625b374"></a><a id="_767123ea_8681_4a85_a23a_4396ab74d3f3"></a><a id="_82cef881_632b_49df_9eb5_3b4d27c2ac8b"></a><a id="_c8790b07_4a97_4254_ba66_b7d6fb0f0b04"></a><a id="_1f447f4c_3ade_46f1_b1e0_d59bf64b6b79"></a><a id="_3c9e22f5_df5e_423e_98eb_5e2a42767736"></a><a id="_8d4297e2_bb46_434c_87f0_b6eeb22f2114"></a><a id="_bf5240e9_d593_4601_a93c_d364db00e1e4"></a><a id="_addc684f_1b2c_4174_a061_501d4e91889a"></a><a id="_80b89691_c141_4ba9_96f5_95508018fce9"></a><a id="_d0dc4873_b42f_4d72_848c_6cd7d5cd1c3c"></a><a id="_651b3e78_376c_435f_858f_083c4e1146c3"></a><a id="_1a95227b_26fb_488e_bcd0_b325c0e2df8d"></a><a id="_bf12659a_06d2_4728_b9fb_3f0c0cf573a7"></a><a id="_fe92576d_b4b9_492a_a898_2633ca718d77"></a><a id="_48fa0fd7_ec2e_45ab_acb9_a8e1a8708ea9"></a><a id="_97073bd1_b523_4932_9bd4_62c9bc5c2f83"></a><a id="Tc_ZyZhZAile0WkRpKquZOhDw_1_2"></a><a id="_f6762c2d_44ce_4bc2_9c4b_4787298a297e"></a><a id="Tc_0CNetaKgoUS3aopl9G6EtA_2_2"></a><a id="Tc_YbgxC1AYr0WZ6wPs4cZqYw_2_5"></a><a id="Tc_JNy0GQRgckm0I2K8-efTTw_2_8"></a><a id="_475727fd_2758_47cb_a774_18b602638e3e"></a><a id="Tc_m5LM1LQeQEShh8l0MusZHg_3_0"></a><a id="Tc_3_oTIDQJvU2UjbROiJ-p1A_3_4"></a><a id="Tc_IupCJIA4ikyGLp1z_2h--A_3_7"></a><a id="Tc_sWkZqZWXok2AEwAx7VzXaw_3_10"></a><a id="_62e72077_c4a9_453a_b92f_1a400348f964"></a><a id="Tc_mRoTOx_0TUaoztX_ksztWw_4_0"></a><a id="Tc_mDUNgxeAoUS3HKR-g2ejWQ_4_2"></a><a id="Tc_rTmjTB9Ar0y-Dm-NCtsPwg_4_5"></a><a id="Tc_bwcx9XScQk2Bhy16TyH4Eg_4_8"></a><a id="_57f82174_1ab5_4419_89cc_2050dbdf4633"></a><a id="Tc_sVQ4GBngg06S7Fo0V_wMMg_5_0"></a><a id="_8a05114b_5d39_497f_a732_e61a260360e2"></a><a id="Tc_S_yajWHV4k2t06AAuvdwsQ_6_0"></a><a id="_5899b18a_4dcd_4600_8a18_b36c9b46451f"></a><a id="Tc_ZOOxwy735UyzA7FQQp3jkw_7_0"></a><a id="_f3874351_4869_476b_ac5c_f267bfdf1eda"></a><a id="Tc_unk7-XTFoEmbFIQu6eAaeQ_8_0"></a><a id="_0e79ddef_a7da_4f20_be73_47dad554ee6d"></a><a id="Tc_lAcy6Zw8WUexP5gz9OC2dw_9_0"></a><a id="_e0353b21_0510_4547_a2e9_0d8212fa712e"></a><a id="Tc__Ir0PUOZmUW_sicoIoEL0Q_10_0"></a><a id="Tc_sEh4Ysun9kie7ZJoOxMlfg_10_3"></a><a id="_b6c05ed7_cf27_443f_91d9_9c793fa5fec0"></a><a id="_a27a23d1_5632_448f_9675_007b52f70be0"></a><a id="Tc_wF8IgW9Ig0ujIPC3ys7daA_11_0"></a><a id="_91a1637a_7f0a_455d_8f6a_d7668d6814ec"></a><a id="Tc_oe_pArGxs0e435mhQEMTHg_12_0"></a><a id="_2840d674_3097_4e99_9c4d_6aaef5c53b50"></a><a id="Tc_V5CAKHXmC0qO9xNDh_uZ9Q_13_0"></a><a id="_75da2e29_ee05_4332_b095_65a872d6b430"></a><a id="Tc_KqP4YMnggE6QdLF2Vswl8w_14_0"></a><a id="Tc_HqmG-UDx20mf1OCJftb5kA_14_2"></a><a id="Tc_tI98Gn5sAUKTpSGoGOfNPQ_14_5"></a><a id="Tc_ytJ92CJb3kOVCCBTMo9DUA_14_8"></a><ix:continuation id="Tb_LRXZfVndo0O8GLSwycVbYQ_cont1" continuedAt="Tb_LRXZfVndo0O8GLSwycVbYQ_cont2"><ix:continuation id="Tb_KwuNvxSuP0iWVOmFBABGdw_cont1"></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="Tb_prUqUgX2Qkyj34fLok25_A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The provision for income taxes for the years ended December 31, 2021, 2020 and 2019 resulted in effective tax rates on continuing operations of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_klXiEzQBsUSyjQvWsMLb7w">24.7</ix:nonFraction>%, <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_skvB-4zlIUC0K9egGCEpzw">21.6</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_8nVkHtGKf0SBuHM0NPKexw">24.7</ix:nonFraction>%, respectively. The reasons for the differences between these effective tax rates and the federal statutory rates are as follows (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:95.68%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.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:1.91%;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.11%;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:7.1%;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.91%;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.14%;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:7.9%;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.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:1.14%;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:7.47%;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.15%;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:65.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;white-space:nowrap;width:1.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 colspan="8" style="vertical-align:bottom;white-space:nowrap;width:30.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.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;white-space:nowrap;width:1.91%;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.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:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.04%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;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.61%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Federal statutory rate of&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;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.11%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_zeKjpxjnvEaUpGr0qgzwAg_3_3">21</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.14%;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:7.9%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_Ss321d1sUU-JzLGYn5MaDw_3_6">21</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;background:#cceeff;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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_TQhahOL1KU-OVsAmvD8z2w_3_9">21</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes at the federal statutory rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_lFD0V_g2Ik24ggG9UYgglg_4_3">39,958</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_jVHvUXrXDk2jBIBn5uOJIA_4_6">40,223</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p 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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_gyO1fWgQo0-C6xDoPbf4hA_4_9">31,866</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Increases (decreases) resulting from&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net state income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" id="Tc_-0uN4T6weEy1o2CTAQnsGw_6_3">7,340</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" id="Tc_arEE-laAfEKPS8xroHY2-Q_6_6">8,406</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" id="Tc_d6mMnvUH6E-Uv7LeXcHslQ_6_9">6,644</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" sign="-" scale="3" id="Tc_XtxyqPhrXkSWVJSo9GjJ0Q_7_3">39</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" sign="-" scale="3" id="Tc_bVRxck-IDkKTecHv3kcvPg_7_6">254</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" sign="-" scale="3" id="Tc_1fiD0QJGjkCg5VIMwx3Jww_7_9">279</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxContingencies" scale="3" id="Tc_emn22-rVnUSOj-v-1PRJnw_8_3">640</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxContingencies" scale="3" id="Tc_fp3wmJPpzUCCFKXZoVGDyg_8_6">18,557</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxContingencies" scale="3" id="Tc_QKx5Vc-RhUe7vXUU2_lEcQ_8_9">7,338</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Nondeductible expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" id="Tc_WOG6Q-eaO0-Ya96UfNaa_g_9_3">2,381</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" id="Tc_fbgRM-SD8kKThhWJnKMerg_9_6">2,470</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" id="Tc_jvlpK25BREmOLJlNFb_fFg_9_9">2,180</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">R&amp;D tax credit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="Tc_64d1a3JpGE6s96vPuCW0zQ_10_6">26,133</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="Tc_NM9VIDSzaUmLnJ9gOKJczA_10_9">4,569</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">179D deduction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:IncomeTaxReconciliationSection179dDeduction" scale="3" id="Tc_NCW9xf_K7EKbKlHKMzm95w_11_3">1,207</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:IncomeTaxReconciliationSection179dDeduction" scale="3" id="Tc_KmnXct3c3UOB1BFdbdNxjA_11_6">1,062</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:IncomeTaxReconciliationSection179dDeduction" scale="3" id="Tc_bRUd-be1sUCkhLNe0LWhng_11_9">5,126</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation deductions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" sign="-" scale="3" id="Tc_3yjQUNFGJEGDN7yTTq7Ctg_12_3">2,210</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" sign="-" scale="3" id="Tc_yCGO8gNqJ0GTOmLvZpi40Q_12_6">426</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" sign="-" scale="3" id="Tc_kbt_d0D0H0yrc9VZQs5Y4w_12_9">714</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;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.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;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:7.1%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" scale="3" id="Tc_I_ygS6E5tk2lgNqFA3-ctA_13_3">63</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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:7.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" sign="-" scale="3" id="Tc_OA4WO91nIkGjlAePtz6g8g_13_6">380</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" scale="3" id="Tc_O1nqk4t_akWqqjdU1PHIQA_13_9">78</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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%;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.1%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_SqDh9wKA4U-yRTbhRyMcqg_14_3">46,926</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_G0IkFWbfr0-pCHAxkTYlYw_14_6">41,401</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_qofq5msV90qmTNN6zM-srw_14_9">37,418</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></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 0pt 12pt 0pt;">In the third quarter of 2019, we filed an amended federal return for 2015 to claim the credit for increasing research activities (the &#8220;R&amp;D tax credit&#8221;) and recorded a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_7_1_2019_To_9_30_2019_zNRK5BKIsE6EkWb207MkPg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="6" id="Narr_bblOvUaQoESrFMiICn9mzA">4.6</ix:nonFraction> million tax benefit that was fully offset by an addition to unrecognized tax benefits. We previously filed an amended federal return for 2014 to claim the R&amp;D tax credit during 2018 and recorded a $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2018_To_12_31_2018_6B76gRgqekyF7BTGXtPV5A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="6" id="Narr_03CNqF3RtUeTo_vdBM_0fQ">2.7</ix:nonFraction> million tax benefit that was also fully offset by an addition to unrecognized tax benefits. These $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="6" id="Narr_HTOF4RIpQkahJrCthMzKlA">7.3</ix:nonFraction> million of tax benefits were fully offset by additions to unrecognized tax benefits due to the uncertainty of the outcome from examinations opened by the Internal Revenue Service (the &#8220;IRS&#8221;). As a result, the R&amp;D tax credit claimed had no impact on our effective tax rates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For the year ended December 31, 2019, our provision for income taxes was decreased by $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="fix:IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" scale="6" id="Narr_2W-_tG9y6k2KTuTDO6UfSw">2.2</ix:nonFraction> million due to benefits from the filing, and expected filing, of amended returns to claim the energy efficient commercial buildings deduction (the &#8220;179D deduction&#8221;) allocated to us.</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 third quarter of 2020, the IRS completed their examination of our amended federal returns for 2014 and 2015 and issued a Revenue Agent Report (&#8220;RAR&#8221;) allowing the $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_9_30_2020_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_M5Au-W_Ubk2x31vaTGd5kw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" scale="6" id="Narr_vG7N_ZXttE6Y4pvEvJXNXQ">8.9</ix:nonFraction> million of refund claims in full. Subsequently, the Joint Committee on Taxation (the &#8220;JCT&#8221;) reviewed and approved the refund claims. As a result, our provision for income taxes was decreased by $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" scale="6" id="Narr_AimM3DbVQUGDZKPP_Lw_yw">8.3</ix:nonFraction> million due to a reduction in unrecognized tax benefits.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#0070c0;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>In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the R&amp;D tax credit requesting refunds of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2016Member_SCaKsNy-BEaoPjyM0b9Nbw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="6" id="Narr_gd9tPygJekuQi9tK90JCMA">9.8</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2017Member_YhPRpAVlh0iWjzAJl-7lpQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="6" id="Narr_cMEqYCRgz0WEPGeliMryWw">9.5</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2018Member_EXAQ6l6KZEmmvwoMAZXH_w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="6" id="Narr_irJHFc_QIUCKmAIvo-AHpg">11.9</ix:nonFraction> million, respectively. The $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_5D0tgvjB3EueSdv0DRNTBw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="6" id="Narr_BkKq3_Xmn02QSHuoaPuobQ">31.2</ix:nonFraction> million of refunds requested was offset by unrecognized tax benefits of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_o9XNW7IAuUWHyBzMBoG5hQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="6" id="Narr_B3qaD41NmUO3H2TxqTiUVw">28.8</ix:nonFraction> million due to the uncertainty of the outcome of our IRS examination. The R&amp;D tax credit had no material impact on our effective tax rate for the year ended December 31, 2020.</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>Following an IRS survey of our previously filed refund claims for the 2016, 2017 and 2018 tax years, the JCT approved such refunds in late January 2022. Since approval was received after the Balance Sheet date, our effective tax rate was not affected for the year ended December 31, 2021. However, our provision for income taxes in the first quarter of 2022 will be decreased by $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" scale="6" id="Narr_HjTj_vWLT0ymi9_A2HVvPw">28.8</ix:nonFraction> million due to a reduction in unrecognized tax benefits plus approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2022_To_3_31_2022_srt_StatementScenarioAxis_srt_ScenarioForecastMember_vjmHLjEnfEe7F0AsMXTz4w" decimals="-5" format="ixt:numdotdecimal" name="fix:InterestIncomeOnIncomeTaxRefundsNet" scale="6" id="Narr_m7rMAyBLjk66rNQ2AKnYBw">1.6</ix:nonFraction> million of net interest income on the refunds.</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></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">72</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.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;max-width:100%;position:relative;"><a id="_d36a5bf6_a022_4967_9f22_42096cfcc53f"></a><a id="_f258e70c_2c85_4fa4_b04f_2f33e5ce9b5e"></a><a id="_bc20e73e_d8a9_48dc_ad09_5c9cfb17dd33"></a><a id="_0a7c59cb_d1a5_4911_98f8_7890448bb58d"></a><a id="_d20d0010_3cc1_43c8_9a52_4e0b780d0240"></a><a id="_34f2bb35_d134_49f2_8cad_efab1f6fea8a"></a><a id="_2bdb0bee_8bbe_4ff3_92d8_2687f5f13549"></a><a id="_4382e273_47fe_4b98_b3aa_027b9b0708ca"></a><a id="_3914263c_6d14_4a57_a771_2aa3e16a65d6"></a><a id="_ed346db8_8297_43e5_afb5_87de0a48b4c2"></a><a id="_d3ca71d1_4821_4e4d_afa8_856274301735"></a><a id="Tc_jSCWQNbdVkSkM3Wg-2T0Ig_1_2"></a><a id="_b3ae1a6d_33b7_4d29_9086_9bccc25251b5"></a><a id="Tc_z1HUeHnhYU-oj9squehKQw_2_2"></a><a id="_52f8e442_8bbe_4621_9991_c507552ce58c"></a><a id="Tc_CQd1J-81DUqKi0Ht5-tGVw_3_2"></a><a id="Tc_oqVzY1viFkKAKf8GCcIySQ_3_5"></a><a id="_300d1c4e_2e9b_412b_8c69_82973fb347f8"></a><a id="Tc_LOnvXWtwJkyzJfF9krWskw_4_0"></a><a id="_670739a5_0e78_44c2_bcc4_efbe49f76d14"></a><a id="Tc_jmeunUBS8kOACYQ-bsgEuA_5_0"></a><a id="Tc_MviOmgulCEiuksYyigcFwA_5_2"></a><a id="Tc_CRxhphk4sUq9Zm-hRrINcg_5_5"></a><a id="_1894750e_0852_4a6b_bcde_016789db07be"></a><a id="Tc_xt7_uJGilECcfqhIIhxXTA_6_0"></a><a id="_db74859c_f202_4a58_b13d_69143527d168"></a><a id="Tc_iw7bx4tKSkq5aoWUklvoUw_7_0"></a><a id="_1716d59e_fdc7_452d_a5dc_056e31c163b3"></a><a id="Tc_1kmX-AQlAk2MFgnOeu2eLw_8_0"></a><a id="_51f76b28_3260_447b_a276_4b65598749dc"></a><a id="Tc__oXdAYg1iUe8KC1rbFZOTQ_9_0"></a><a id="_e19dd04f_4b1e_4d47_b9d2_2dfe372e9728"></a><a id="Tc_ICdDugRK1kqv5g2GON1AtQ_10_0"></a><a id="Tc_IPq5lbx-4UutcmhPIH9pmQ_10_6"></a><a id="_535e0896_ddee_4754_9d3b_9179253dd35f"></a><a id="Tc_iXOkbkUlr0ikrfBUJsqY4A_11_0"></a><a id="_094bc201_011e_4b7f_81d8_1a9cf3022bca"></a><a id="Tc_Yhbjw-Tqt0if0NH5dcOPTg_12_0"></a><a id="_09718201_6fb4_41ea_81dd_867b6a671493"></a><a id="Tc_yeKTX3xyQ0qOqiOienEXBg_13_0"></a><a id="_85bcab3c_9c09_4c25_863c_4da8738f9247"></a><a id="Tc_U6cs1ACkA0Cj-fe700-puA_14_0"></a><a id="_9d757ef4_932a_48ab_ac8d_83bb5b975937"></a><a id="Tc_Dl7dWSLgPkW5DoEsrf79uQ_15_0"></a><a id="_b63ba43e_f737_4c3b_a50e_0b42ce5f7e06"></a><a id="Tc_P6i4a-hi_kGOFLM0I1JXZw_16_0"></a><a id="_c79240b8_6a23_4dfd_a132_388e95ff0cc8"></a><a id="Tc_Ow_hhVx6kEClS81LqxwurA_17_0"></a><a id="_95f03b5c_5c3e_453e_9e2c_2f838bbc321c"></a><a id="Tc_p4vaxUOntkySMGdW3yzUvQ_18_0"></a><a id="_570861cf_7df5_4a6d_9c22_dcfc62a5d254"></a><a id="Tc_MFm1-v0M7U2OaBYW_j9nPg_19_0"></a><a id="Tc_GZ0Wk-pTb06RmJhLi7h1qQ_19_3"></a><a id="_521e583c_7180_4b2e_93b8_5e70a89c5f12"></a><a id="Tc_8FM4lP0EOESLymxDQMbuvA_20_0"></a><a id="_7f4d16b4_49d2_45d1_b676_68fd476b29b3"></a><a id="Tc_RfQVukXiKkCDLggZiDyDOg_21_0"></a><a id="_a73fd7d4_9307_403c_bffe_8384832a2ecd"></a><a id="Tc_CEig6ayGgUy9AtPyvOUyMg_22_0"></a><a id="_bd991627_48c7_4bc5_aed2_da706f87ee74"></a><a id="Tc_EsXboNJV7EWQ57f4hlCk1w_23_0"></a><a id="Tc_A6R9qc9-xESlF1f4U03fVw_23_2"></a><a id="Tc_v7GhQS5CGEehQuAv7lX5gw_23_5"></a><a id="_f5680a06_e5b2_4b37_8366_47f0c3c81322"></a><a id="_7adb24be_93b5_4300_a682_7b69464b5045"></a><a id="_8a5deda9_5c92_42e6_873a_62d8100a16a0"></a><a id="_57b410a8_2dec_4629_9c5e_cc713dec3e93"></a><a id="_8a5428fa_f23e_490a_8345_93803534759a"></a><a id="_be8b9f7a_7c94_4597_bb01_d9506eb5bfce"></a><a id="_6e0dce22_42eb_4af5_ab31_971a42d6bd3b"></a><a id="_e8b55386_cf1b_4600_b3c8_abbf74dc6da4"></a><a id="_bbc5ded9_f348_4d60_877b_e8f543bcbc6f"></a><a id="_60fb800e_03db_449a_85a0_d04941174710"></a><a id="_c235435c_64e1_42fa_a264_6d1028ea9a06"></a><a id="Tc_NmCz3zMlPECoigYH5cbX5w_1_2"></a><a id="_58234a75_7a1c_4363_9121_a0880f701270"></a><a id="Tc_QhJc8qWZyEC53HSG_L04JA_2_2"></a><a id="Tc_uEyWZ3a4VUmHcOroMs1N0w_2_5"></a><a id="_ca71b0b5_c691_44c7_8781_8f739837835b"></a><a id="Tc_Qxbf8sgEGEK9E3nDsZgdpA_3_0"></a><a id="Tc_eVzs4WEn8ECRozQQWeS6TQ_3_2"></a><a id="Tc_Ih7ZheiHmk6NJd9xrtLO_g_3_5"></a><a id="_7bf46634_20c8_4f56_8d17_0f1609d41de8"></a><a id="_39499c5e_91f5_4a66_8725_82b503cec57c"></a><a id="_90d78bbc_19ba_4447_aa07_044f3edf510a"></a><a id="Tc_1UaU5nzyU0WK1cKDcAzS-g_4_0"></a><a id="Tc_sRDuSSmNNkqGGduHVPdLKQ_4_2"></a><a id="Tc_WU58AsKJ4kiDnV5ls8Impg_4_5"></a><a id="_6ffd83b2_25c1_4af9_9a8e_bb29c7d8312d"></a><a id="_12583f76_e6df_41a1_a435_7c1e9629bf86"></a><a id="_b0ec4477_9904_4405_abb3_cd53266db2be"></a><ix:continuation id="Tb_LRXZfVndo0O8GLSwycVbYQ_cont2" continuedAt="Tb_LRXZfVndo0O8GLSwycVbYQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Deferred Tax Assets (Liabilities)</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Tb_7-IcgIuNA0msL_E39QbjhQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant components of the deferred tax assets and deferred tax liabilities as reflected on the balance sheets are as follows (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:67.39%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.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><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.52%;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.22%;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.44%;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.52%;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.22%;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.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></tr><tr><td style="vertical-align:bottom;width:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;margin:0pt;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.61%;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:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;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.44%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accounts receivable and allowance for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" scale="3" id="Tc_amuRpP5Zq0Szg1S3wfzm_A_5_3">1,878</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" scale="3" id="Tc_t2EA7YYc_UqeA-iVpnK10Q_5_6">2,186</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="3" id="Tc_16T1P3LtRUO9t_ow4DA9bw_6_3">3,392</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="3" id="Tc_-A3kLtogIk-oStovYg2GdQ_6_6">2,791</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accrued liabilities and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" scale="3" id="Tc_vqRuYlz0S0ORyc3Y62ZHjQ_7_3">36,255</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" scale="3" id="Tc_z12NaoQolkaIoBnxy72mbQ_7_6">39,761</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredTaxAssetsLeaseLiability" scale="3" id="Tc_QZ_CS_TIXkSfLJE_W7IExQ_8_3">27,944</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredTaxAssetsLeaseLiability" scale="3" id="Tc_0Poqukqz4UWLX-OWQ2q6Tw_8_6">22,768</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net operating loss carryforwards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" id="Tc_shtkNltLSEe5Z6PUn5lR6Q_9_3">10,379</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" id="Tc_NKDnAQhkFEmedaA4yDnYoQ_9_6">12,127</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" scale="3" id="Tc_y1dmO83Sk02t0EpmedmB7Q_10_3">3,851</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOther" scale="3" id="Tc_YSnl0CaEDUK-mPcFKWVnFg_11_3">758</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOther" scale="3" id="Tc_Xs0blxOgPE6lAb8EZGROgQ_11_6">627</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_4-UB7q7muEq6yUsJgQmWeg_12_3">84,457</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_GpV9j5qYdkuww8EBNKrDSw_12_6">80,260</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_7aX4O4opgkW9PHbpzm2-fw_13_3">475</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_0IYtYg7L4kGaslfgMr_FSw_13_6">514</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsNet" scale="3" id="Tc_r15SCH8yJUiHL568nNQsVQ_14_3">83,982</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsNet" scale="3" id="Tc_2JE3Ekmn50COM5D1mGk9zA_14_6">79,746</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" scale="3" id="Tc_m3OQhOuEVUmEehRKFVjLWA_16_3">15,534</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" scale="3" id="Tc_3oclHRq4ZEChAlSYBxlK5A_16_6">13,877</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease right-of-use asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesLeasingArrangements" scale="3" id="Tc_ak6UaJ6QIUSavnpiHtnmVg_17_3">27,905</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesLeasingArrangements" scale="3" id="Tc_BR20YE2c2kiSpm0aiASXuQ_17_6">22,715</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Long-term contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredTaxLiabilitiesLongTermContracts" scale="3" id="Tc_7zZQUbuoDUqICVYFOJPh-Q_18_3">964</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="fix:DeferredTaxLiabilitiesLongTermContracts" scale="3" id="Tc_Ffr-3QtWsE-wr8nlJadycQ_18_6">609</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" id="Tc_-LpP4VTkoU6CzDdrFHaU4g_19_6">242</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" scale="3" id="Tc_mWiJmJy79UWSb8CbnkuR1A_20_3">17,321</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" scale="3" id="Tc_xnGL4OKk8U-RioWAak2XsA_20_6">11,615</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_rP7RjZyeekmQE8stooNGFw_21_3">1,098</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_7hc6RBhUHk-IaFLa9nNj7Q_21_6">2,626</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_usHL4rFloEWJKlOmho4aTw_22_3">62,822</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_zQLR1yOrU0SQRI63M8EC2g_22_6">51,684</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" scale="3" id="Tc_S3AKhFYuJUeJnbAC3_P6rg_23_3">21,160</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" scale="3" id="Tc_VBv4WyAJcUOLbzWEnIj66w_23_6">28,062</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="fix:ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Tb_oJwBWVJbF0-bbVVtWjqvZA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The deferred tax assets and liabilities reflected above are included in the Consolidated Balance Sheets as follows (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:42.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:54.84%;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:3.84%;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.4%;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:15.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:3.84%;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.4%;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:15.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:0.96%;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:54.84%;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.84%;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:40.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;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.84%;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:18.25%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:18.25%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_9r38F89kjkOwihwAw2XApA_3_3">22,905</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_rYJfRxVMxUe8OjCYai1ltA_3_6">29,401</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:54.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_lZ6196biP0CSELWr77M9dA_4_3">1,745</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_orQXjpYSF0Klcljy5A6TXg_4_6">1,339</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">As of December 31, 2021, we had $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" scale="6" id="Narr_6g3XGJ-SIkKgb-5nyEUaEA">7.2</ix:nonFraction> million of deferred tax assets related to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_NvMtvyRE0kivbU5z_rcaxQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="6" id="Narr_R05-icgAlEKdXfFNFY3chw">34.2</ix:nonFraction> million of federal net operating loss (&#8220;NOL&#8221;) carryforwards as a result of the TAS acquisition. If not used, such carryforwards will begin to expire in 2031. We also had $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" scale="6" id="Narr_xvzjJ-yQzkiIzi7vdIq9Wg">3.2</ix:nonFraction> million of deferred tax assets related to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="6" id="Narr_lhx_tXZdyEa3HjU2plaIOw">61.7</ix:nonFraction> million of state NOL carryforwards, including carryforwards acquired from TAS. The state NOL carryforwards will expire in varying amounts between the years 2022 and 2041. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;">Pursuant to Section 382 of the Code, utilization of our federal NOL carryforwards is subject to annual limitations due to the ownership change in TAS. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain stockholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. While we expect to fully utilize the federal NOL carryforwards acquired from TAS before they begin to expire in 2031, valuation allowances were recorded against certain of its state NOL carryforwards. We do not believe it is more-likely-than-not that TAS will have sufficient revenue-generating operations in those states in the future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';margin-left:0pt;margin-right: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;">Valuation allowances of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_OrX3k8Mra0SMowQ1DM179A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" scale="6" id="Narr_xiPoVl6Na0yq-QUJuEIA_A">0.4</ix:nonFraction> million have been recorded against certain of the state NOL carryforwards. The $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsNet" scale="6" id="Narr_nHlYlbZP806Rq-meJMfYnw">2.8</ix:nonFraction> million of deferred tax assets for state NOL carryforwards, net of valuation allowances, reflects our conclusion that it is more-likely-than-not these assets will be realized based upon expected future earnings in certain of our subsidiaries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We regularly update our assessment of the realizability of our deferred tax assets, in particular, those related to state NOL carryforwards. A return to profitability in our subsidiaries with valuation allowances would result in a release </p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">73</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.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;max-width:100%;position:relative;"><a id="_b207175a_376d_4449_915d_6f7989414d58"></a><a id="_a1ca5735_5377_40ae_be1b_238f2a6d8f7b"></a><a id="_cb583179_ae1c_4164_ae85_3bce903be3b6"></a><a id="_1021ad47_72a0_4e9b_aa64_7bdb128635c3"></a><a id="_4d56ac8c_4b47_4d26_9790_6b5cf4224d55"></a><a id="_1f6a6a0f_f805_4e3c_8e9e_aad9b18a4ccd"></a><a id="_4d0b1abf_30a2_4441_b3bb_a3132d01113c"></a><a id="_d4e47e1e_54b1_4084_af93_804f75fea7a6"></a><a id="_1e19466d_9543_4c16_8001_4a4d16dda28a"></a><a id="_1865e2f9_2fe2_44a1_b7b4_b70b5b5275de"></a><a id="_f762d884_6bdd_4ff2_bb2f_8749702c7fb0"></a><a id="_07e49118_a642_4fd1_a2ba_d7a1908f8c8a"></a><a id="_f6bbdd25_79fc_41ed_b349_7bf2fe23d405"></a><a id="Tc_fCLxqHTlTUuoRzpsK_uflg_1_2"></a><a id="_49071ff0_2dc2_4862_993c_39cbcdcd8062"></a><a id="Tc_C4JEeMumYkO5POqzFOf2Ng_2_2"></a><a id="_15df1905_b6d8_4422_8732_43ee25649393"></a><a id="Tc_3bUXU8svD0yp_rVsWVDbJA_3_2"></a><a id="Tc_qlBkLBxam0KMj6qZ79JZtQ_3_5"></a><a id="Tc_q-y6MHI6dEu_uhi94ORm3Q_3_8"></a><a id="_86f8cc01_e836_46c0_a5b6_773d2fa80174"></a><a id="_fd95df21_d746_41b2_b8a4_f6e44e60e8c3"></a><a id="_7bd7b1fa_ed27_45a3_97a6_9cc1d573b153"></a><a id="_02772ecb_f4bf_4084_ae94_9ba950584529"></a><a id="Tc_WIju7F3vuUCxxQUUgSmufg_4_0"></a><a id="Tc_rBLGapUcNEq5fLcQKuf50Q_4_2"></a><a id="Tc_9tX-HWWVskKRh4OlqCMx_A_4_5"></a><a id="Tc_ejuxkN3Qq0GW7FtlmRSlqg_4_8"></a><a id="_a786ec79_8078_4f5a_b70d_7785870debb0"></a><a id="Tc_gwtA5SCt_UOdvXEHXJSaCQ_5_0"></a><a id="Tc_mmSqFaSK40mJwfAJ0uT78w_5_6"></a><a id="Tc_2Ydh7SN6SEOsuGnODqPCzg_5_9"></a><a id="_f1f178d3_23cc_44f7_8da3_7f3a2240a0a3"></a><a id="Tc_GqPMDKn82kus1eqjJWzrZQ_6_0"></a><a id="_17a78de6_bcfa_4b8f_9606_25a1a6d8d3ee"></a><a id="Tc_ZFlHoNJM2EOCkAhSzAG0Tg_7_0"></a><a id="Tc_mE0x1OwDdU6-RlH5mrYqyg_7_3"></a><a id="Tc_-kWrJqwynkCw62noNf9WXg_7_6"></a><a id="_627cf71b_315b_4d48_a6bc_a4ebc0324acf"></a><a id="Tc_U92FIE9auEGUgz9lpxHtsQ_8_0"></a><a id="_d93e7a27_1469_4636_b1fe_71c1462df085"></a><a id="Tc_dvguZ6WdJky6W2WS2xisow_9_0"></a><a id="Tc_GMP26CJqyUeKwctFoSsD6w_9_2"></a><a id="Tc_xBG882LhDUCorRpyuwWVgQ_9_5"></a><a id="Tc_K8AMlQe24UKyD_o32jjH_Q_9_8"></a><a id="_43f8351c_20b6_41ec_ac6f_7cbb5ca92bc0"></a><a id="_93979e0e_b643_4bb9_b6e9_2104f7c49e11"></a><a id="_45667b6b_5ef4_4f87_b7cd_492679030bae"></a><a id="_a534afe7_3812_4a6b_adf5_1d150c7f97e4"></a><a id="_86c22e84_8340_4487_99c9_ad0eba38de6a"></a><a id="_33baf830_0eab_48ca_9794_698f2e3d531c"></a><a id="_55a22d42_92cd_4ffb_887e_c3d38ad106ea"></a><a id="_eb3291fc_58e6_4363_a632_e986ed48ecb5"></a><a id="_70f881ae_886a_4278_8d0f_9412ac8cf6e4"></a><a id="_5460dac5_8d94_4404_86b9_9648a7805207"></a><a id="_bd31de87_591c_47a6_bb86_229b808f2138"></a><ix:continuation id="Tb_LRXZfVndo0O8GLSwycVbYQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">of a portion of the valuation allowances relating to realizable deferred tax assets. A sustained period of profitability could cause a change in our judgment of any remaining deferred tax assets. If that were to occur, then it is likely that we would reverse some or all of the remaining valuation allowances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Liabilities for Uncertain Tax Positions</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="Tb_891xdvw5qkOoQX9JXP7mTw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties, is as follows (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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.6%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.72%;margin:0pt;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_fRkw9h0c5EK2LajII7reQQ_4_3">28,756</ix:nonFraction></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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_jQaruQhttU-eSjZbg16-BA_4_6">10,199</ix:nonFraction></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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_KciPppfEFE6TYqqW2fClcg_4_9">2,966</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to current year</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="Tc_IZk4Ol4nc0Wv5AcD_0h4OA_5_3">207</ix:nonFraction></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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to prior years</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="Tc_-OP8MQJPHUm96-RJZL4XDg_6_3">489</ix:nonFraction></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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="Tc_KPi7E8yQJUShahqdT9pjQw_6_6">26,858</ix:nonFraction></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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="Tc_Su_J9O_QzkyfCjuKR0F6FQ_6_9">7,473</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for tax positions related to prior years</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="Tc_xOJICnpbsUaRrUz0s_hD2A_7_9">240</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for settlements with tax authorities</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><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:8.81%;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="-sec-ix-hidden:Hidden_qeeW_Mhz_kK5lW_N8t46sw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></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><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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" scale="3" id="Tc_yvfcxwLnLkWgBXBB41hcfw_8_6">8,301</ix:nonFraction>)</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><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:8.81%;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="-sec-ix-hidden:Hidden_YsyGhjT4RUuLi3Lets5Aqg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</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;"><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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_O0_AjAhD5UmtxtjDKNHdpw_9_3">29,452</ix:nonFraction></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;"><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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_pHu41R298U2H6lmAuWIpBg_9_6">28,756</ix:nonFraction></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;"><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:8.81%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="3" id="Tc_hJihUUUfZkmPWQ-hLMOGFA_9_9">10,199</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><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="display:inline-block;text-indent:0pt;width:36pt;"></span>As of December 31, 2021, 2020 and 2019, we had $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="6" id="Narr_Ce19T1JJjUuRK2aTegR5pg">29.5</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="6" id="Narr_bu-RDp-JGUORuTysV0bFhg">28.8</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefits" scale="6" id="Narr_SUO71M2pQkOOAnuHKjRdlg">10.2</ix:nonFraction>&#160;million, respectively, of unrecognized tax benefits, which if recognized in future periods, would impact our effective tax rates. We have <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="Narr_rmyK4Seve0mG5ATNBsMD1Q"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="Narr_9Ef7SNBD2UiHMM_JwKU3_g"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="Narr_0NZXaX35bUSP13SRizIfAQ">no</ix:nonFraction></ix:nonFraction></ix:nonFraction>t accrued any amounts for potential interest and penalties related to the unrecognized tax benefits as of December 31, 2021, 2020 and 2019. We recognize potential interest and penalties related to unrecognized tax benefits in our provision for income taxes. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We are subject to taxation in the United States and various state jurisdictions. For the year ended December 31, 2020, our unrecognized tax benefits were reduced by $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" scale="6" id="Narr_I6ftadGwH0emxDrr-UXITA">8.3</ix:nonFraction> million due to a favorable settlement with the IRS for the 2014 and 2015 tax years. As of December 31, 2021, we remain open to IRS examination for the 2017 tax year forward.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">State income tax returns are generally subject to examination for a period of three to four years after filing the returns. However, the state impact of any federal audit adjustments and/or amendments remains subject to examination by various states for up to one year after formal notification to the states. As of December 31, 2021, we generally remain open to examination by various state tax authorities for the 2017 tax year forward. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We will have a reduction of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" scale="6" id="Narr_kRDYFDBWgkKbrYaQkvjIOQ">28.8</ix:nonFraction> million in unrecognized tax benefits in the first quarter of 2022 due to a favorable settlement with the IRS for the 2016, 2017 and 2018 tax years. Any further reductions in our unrecognized tax benefits, due to the future recognition of those tax benefits, would affect our effective tax rates. </p></ix:continuation><a id="_Hlk536115831"></a><a id="_Hlk536116284"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:CompensationAndEmployeeBenefitPlansTextBlock" id="Tb_PDRjPDjVFUWY-Vm50EgWgg" continuedAt="Tb_PDRjPDjVFUWY-Vm50EgWgg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">12. Employee Benefit Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We and certain of our subsidiaries sponsor various retirement plans for most full-time and some part-time employees. These plans primarily consist of defined contribution plans. The defined contribution plans generally provide for contributions up to <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="3" format="ixt:numdotdecimal" name="fix:DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" scale="-2" id="Narr_XvrkiHqFyUaXAJ-4u9E6-Q">2.5</ix:nonFraction>% of covered employees&#8217; salaries or wages. These contributions totaled $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="Narr_vPBpHDooS06MGGs1U4Hopw">16.1</ix:nonFraction>&#160;million in 2021, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="Narr_FVZbXa9jEUWa1JxSq0k4-w">16.3</ix:nonFraction>&#160;million in 2020 and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="Narr_UPKBL8W8xUSmCE9sZBxy5w">14.2</ix:nonFraction>&#160;million in 2019. Of these amounts, approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="fix:DefinedContributionPlanAmountPayable" scale="6" id="Narr_npO6QGNIrkWD5s0-Y7SqVg">0.6</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="fix:DefinedContributionPlanAmountPayable" scale="6" id="Narr_zo3lcTYkdUqXQqTErRBz4A">0.5</ix:nonFraction> million were payable to the plans at December&#160;31, 2021 and 2020, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Certain of our subsidiaries also participate or have participated in various multi-employer pension plans for the benefit of employees who are union members. As of December&#160;31, 2021 and 2020, we had <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt:numdotdecimal" name="fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" scale="0" id="Narr_mM7Ty5BezUew1a7JfshBtw">5</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="INF" format="ixt:numdotdecimal" name="fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" scale="0" id="Narr_N1RaqUjSHUauLXSRHeWrzQ">6</ix:nonFraction>, respectively, who were union members. There were <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:MultiemployerPlanPensionInsignificantPlanContribution" scale="6" id="Narr_1b9tA1l1CEC1fsiW25AXuQ"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:MultiemployerPlanPensionInsignificantPlanContribution" scale="6" id="Narr_20mF6Xd-_0WahsnqKBe3Ww"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:MultiemployerPlanPensionInsignificantPlanContribution" scale="6" id="Narr_ZVaIroW830WpxgA5OM5NJQ">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> contributions made to multi-employer pension plans in 2021, 2020 or 2019. The data available from administrators of other multi-employer pension plans is not sufficient to determine the accumulated benefit obligations, nor the net assets attributable to the multi-employer plans in which our employees participate or previously participated. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Certain individuals at one of our operating units are entitled to receive fixed annual payments that reach a maximum amount, as specified in the related agreements, for a <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="Narr_VVSEkSKOgUm9WJQ-nlQfQA"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="Narr_RQmfwT2qO0y7gyBIwYWV4g">15 year</ix:nonNumeric></ix:nonNumeric> period following retirement or, in some cases, the attainment of <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="Narr_I9F5qTEJxE2UFksvkKFRow"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="Narr_6bAO7OpFrk2sqnww2c9RnQ">65 years</ix:nonNumeric></ix:nonNumeric> of age. We recognize the unfunded status of the plan as a non-current liability in our Consolidated Balance Sheet. Benefits vest <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="2" format="ixt:numdotdecimal" name="fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" scale="-2" id="Narr_-VYbX9QiBkuU5x3FitnAJw">50</ix:nonFraction>% after <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" id="Narr_Ofk1M5SRc0yaDHdBLFSfoQ">ten years</ix:nonNumeric> of service, <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="2" format="ixt:numdotdecimal" name="fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" scale="-2" id="Narr_0rWRUJOOR0Si1s_-8F4xnA">75</ix:nonFraction>% after <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" id="Narr__gazH2cstk-Choie3uE0QA">fifteen years</ix:nonNumeric> of service and are fully vested after </p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">74</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_PDRjPDjVFUWY-Vm50EgWgg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" format="ixt-sec:durwordsen" name="fix:DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" id="Narr_s9DhzY13WkGo0tbsLCMnfw">20 years</ix:nonNumeric> of service. We had an unfunded benefit liability of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" scale="6" id="Narr_-Qr5SXoWeUaO3qvI1b2Pmw"><ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" scale="6" id="Narr_Tv59I4XwMES8vglo3JxBdg">4.0</ix:nonFraction></ix:nonFraction>&#160;million recorded as of both December&#160;31, 2021 and 2020.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="Tb__wGiyoxRmkKhcWNMWjFrnw" continuedAt="Tb__wGiyoxRmkKhcWNMWjFrnw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">13. Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA" decimals="INF" format="ixt-sec:numwordsen" name="fix:LossContingencyLetterOfIntentUnderDisputeNumber" scale="0" id="Narr_teyJuO5Xk0uZ-X0J6xYorg">two</ix:nonFraction> executed letters of intent for subsequent projects that we believe are not enforceable.  The customer is claiming approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_CounterpartyNameAxis_fix_CustomerMember_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_Mbc2I9cwlU2yiu47XX-7yw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LossContingencyDamagesSoughtValue" scale="6" id="Narr_o0KcEZ2GlUezrSWDYpMLqA">12</ix:nonFraction> million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent.  We are claiming approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA" decimals="-5" format="ixt:numdotdecimal" name="fix:LossContingencyDamagesStatedValue" scale="6" id="Narr_JSqhcPzb60aC3DFau87Slg">9</ix:nonFraction> million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered.  We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months.  As of December 31, 2021, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; 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 12pt 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 0pt 12pt 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. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_RutgiWxKtUmym0RBAhJ6JA" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfBusinessWhichHasRequiredBonds" scale="-2" id="Narr_Sh11s_R-zkqUD3xDVmU4Zg">15</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_v1DvR0XCTE6OEwD3U51ljg" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfBusinessWhichHasRequiredBonds" scale="-2" id="Narr_XuI9x0HJ30iAmguAAhNOUQ">25</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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 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></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">75</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb__wGiyoxRmkKhcWNMWjFrnw_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our self-insurance arrangements as of December 31, 2021 were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Workers&#8217; Compensation&#8212;</i>The per-incident deductible for workers&#8217; compensation is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceDeductibleAmountPerIncident" scale="0" id="Narr_T4bLBJuDEkSd-2136of1rg">250,000</ix:nonFraction>. Losses above $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" scale="0" id="Narr_Z-G3iOyPXU2sPCZ2RerOJQ">250,000</ix:nonFraction> are determined by statutory rules on a state-by-state basis and are fully covered by excess workers&#8217; compensation insurance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Employer&#8217;s Liability&#8212;</i>For employer&#8217;s liability, the per-incident deductible is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_Xd2YTgeJJUmJn4FFA843Iw" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceDeductibleAmountPerIncident" scale="0" id="Narr_4XFK79hvD0-LrYWTMsmVBw">250,000</ix:nonFraction> and then we have several layers of excess loss insurance policies that cover losses up to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_-GKW7Q3ip0mxigKVVAYiCQ" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAggregateLossInsuranceCoveredAmount" scale="6" id="Narr_NvojFi7HFUKbJY7KHK76Tw">150.0</ix:nonFraction>&#160;million in aggregate across this risk area (as well as general liability and auto liability noted below).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">General Liability&#8212;</i>For general liability, the per-incident deductible is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceDeductibleAmountPerIncident" scale="0" id="Narr_3Oz9crcrLUaxkgtU5xl-1Q">250,000</ix:nonFraction>. We are fully insured for the next $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" scale="6" id="Narr_QoPEDDoNqUKPATIGQevzjA">10.0</ix:nonFraction>&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_BR-evTo8skW1q-KzV_SeVw" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAggregateLossInsuranceCoveredAmount" scale="6" id="Narr_gh9aI-xIEkewQ2Nhnv1PDQ">150.0</ix:nonFraction>&#160;million in aggregate across this risk area (as well as employer&#8217;s liability noted above and auto liability noted below).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Auto Liability&#8212;</i>For auto liability, the per-incident deductible is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceDeductibleAmountPerIncident" scale="0" id="Narr_QlDw9scec0ijDfw_kW9M4Q">250,000</ix:nonFraction>. We are fully insured for the next $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" scale="6" id="Narr_PIzT2DtakkS6vvHpDY-nLw">10.0</ix:nonFraction>&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_JsfG-PJXuUGAtMCB5QSbCw" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAggregateLossInsuranceCoveredAmount" scale="6" id="Narr_y9hg7jWXZ06OyDON0VAjJA">150.0</ix:nonFraction>&#160;million in aggregate across this risk area (as well as employer&#8217;s liability and general liability noted above).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Employee Medical&#8212;</i>We have <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalMember_WP5DJYN1cke6lZSaEudAfQ" decimals="INF" format="ixt-sec:numwordsen" name="fix:SelfInsuranceNumberOfMedicalPlans" scale="0" id="Narr_xWACVFLc1kKBoaCJPcRhsw">three</ix:nonFraction> medical plans. The deductible for employee group health claims is $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanOneMember_TFzL1__IbUSyj03-uawq1w" decimals="0" format="ixt:numdotdecimal" name="fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy" scale="0" id="Narr_YxD74NWvikGUu5zroO-9tQ">350,000</ix:nonFraction> per person, per policy (calendar) year for <span style="-sec-ix-hidden:Hidden_YtnPa85EZUG1LYw17wGRBw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">each</span></span> <span style="-sec-ix-hidden:Hidden_STJq7lThfkubfTudKLui7w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">plan</span></span>. Insurance then covers any responsibility for medical claims in excess of the deductible amount.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">Our $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" scale="6" id="Narr_Jb9qbePBOkyevGXN6R2MVw">150.0</ix:nonFraction>&#160;million of aggregate excess loss coverage above applicable per-incident deductibles represents one policy limit that applies to all lines of risk; we do not have a separate $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-5" format="ixt:numdotdecimal" name="fix:SelfInsuranceAggregateLossInsuranceCoveredAmount" scale="6" id="Narr_VXefLJi_zUG-bpD_MiWvLw">150.0</ix:nonFraction>&#160;million of excess loss coverage for each of general liability, employer&#8217;s liability and auto liability.</p></ix:continuation><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:EarningsPerShareTextBlock" id="Tb_QqJ5n5stHUCXVVGcYeZruw" continuedAt="Tb_QqJ5n5stHUCXVVGcYeZruw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">14. 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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2012 Equity Incentive Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In May 2012, our stockholders approved our 2012 Equity Incentive Plan (the &#8220;2012 Plan&#8221;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2012 Plan is <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_5_31_2012_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member_MaOHwMApYky_GP_adjnIHA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" scale="6" id="Narr_EgR0cySq0UekvCuYOy2vJg">5.1</ix:nonFraction>&#160;million shares. As of December&#160;31, 2021, there were <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member__4F9hnKzF06tBh5Un2QPfg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="6" id="Narr_Ip1KHAB8-0KetqtPhIg8cw">2.9</ix:nonFraction>&#160;million shares available for issuance under this plan; however, following adoption of the 2017 Plan (described below), no additional shares will be issued under the 2012 Plan. We have outstanding and exercisable stock options under the 2012 Plan. The 2012 Plan will expire in May 2022. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2017 Omnibus Incentive Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In May 2017, our stockholders approved our 2017 Omnibus Incentive Plan (the &#8220;2017 Plan&#8221;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2017 Plan is <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_5_31_2017_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_X4x_ToKsyEabhYk7zXHekA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" scale="6" id="Narr_fe4x4Rw5b06FnmIY6ECEHQ">2.9</ix:nonFraction> million shares. As of December 31, 2021, there were <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_lqhw-ZMnekG_F5M0xEZSZw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="6" id="Narr_bG5h0nSZFkC55y_7wt0Egw">1.9</ix:nonFraction>&#160;million shares available for issuance under this plan. The 2017 Plan will expire in May 2027. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_XDJscgAzdUGihjM6TZH90w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_1jLrkKVlIEKY3YDtDwSykA">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 December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_8_2020_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_NcowEMOjcECN5l3FkBq3Zg" decimals="-5" format="ixt:numdotdecimal" name="fix:StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_6OceblBrrkeVijzDKtDZ-A">0.7</ix:nonFraction> million shares. Since the inception of the repurchase program, the Board has approved <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_StPrCiBetkuLKqMF70IYjw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_8TIjLKs8Zketh9yoB39DuQ">10.3</ix:nonFraction>&#160;million shares to be repurchased. As of December&#160;31, 2021, we have repurchased a cumulative total of <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="6" id="Narr__rLfAPsYE0icas4lIDqOQQ">9.7</ix:nonFraction>&#160;million shares at an average price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" scale="0" id="Narr_KtowzGkVH0uKXifzWK_0BQ">21.69</ix:nonFraction> per share under the repurchase program.</p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">76</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.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;max-width:100%;position:relative;"><a id="_58bf20cc_9447_4622_b329_9f3615dacb4b"></a><a id="Tc_AuVOG0lHP0G2rRQ1_1yvxQ_2_3"></a><a id="Tc_9A88VEleCE2HqD3yobNJIA_3_3"></a><a id="Tc_8-OoxbIok0WIufJfOseplQ_3_5"></a><a id="Tc_pTlSTFpSWkeNFnlDSZ2q2g_3_7"></a><a id="Tc_3lP3Z9mNnEGN7xsVwN_eNw_4_0"></a><a id="Tc_SblCzKd9dkemtED_ssnjsQ_5_0"></a><a id="Tc_YAEDZXWtpEuNzSmCEZxOtg_6_0"></a><a id="Tc_RrRpdys4BkKjaUcA01oj-w_7_0"></a><a id="Tc_Cy6CJhyKlUG2VFUiJvpaPg_8_0"></a><a id="Tc_mKVS8hdg8k2vTWOhtoU9KA_9_0"></a><ix:continuation id="Tb_QqJ5n5stHUCXVVGcYeZruw_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 year ended December 31, 2021, we repurchased <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_HAHm8VeHFkqX3ve2F7PpQA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockSharesAcquired" scale="6" id="Narr_K0689_CjsEyNpVT4ne8_bQ">0.4</ix:nonFraction>&#160;million shares for approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="6" id="Narr_if9xM0XEB0CSvdvkmhoRgA">27.1</ix:nonFraction> million at an average price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" scale="0" id="Narr_p75dik42k02eIbODUVmI8Q">74.57</ix:nonFraction> per share. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 0pt 12pt 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 0pt 12pt 0pt;">There were <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_dGLjYhyUrEuKkxFc11mE8A">zero</ix:nonFraction> anti-dilutive stock options excluded from the calculation of diluted EPS for the year ended December 31, 2021 and less than <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_MDW920TLfEGBXUbYyXDF-g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_qmOZaZn5rk-8CAzb3-F3OQ"><ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_HUBuliTaLka1hi-Y0urXxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="6" id="Narr_lrSMaFVypkOjOBAW23LSZg">0.1</ix:nonFraction></ix:nonFraction> million anti-dilutive stock options excluded from the calculation of diluted EPS for the years ended December 31, 2020 and 2019. </p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="Tb_IyF621vaN06FwLdAu8wu1g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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><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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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.19%;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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.28%;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;">Year Ended December 31, </b></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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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;white-space:nowrap;width:1.91%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2019</b></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:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_29wPxUSzEkCeRdI3OBK-Tw_4_3">36,091</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_RqZiwW6NN0mM2PhmKuiqlg_4_5">36,188</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_1wrgfLVQ80WktsHquO_KSg_4_7">36,658</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_bodXblW3w0eEvtiS3UxMQA_5_3">194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_pCn4d8MmJ0uJbgIk4kcqMw_5_5">354</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="fix:EffectOfUsingWeightedAverageCommonSharesOutstanding" scale="3" id="Tc_YEIaCUYJa0GfgzbQuhD6pA_5_7">196</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_hPyHzX2uEkieOAW6A1MNBw_6_3">36,285</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_10_XUXJCD06rW5WpP12agg_6_5">36,542</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_k-4nG6yEx0GI6PljU6EBzQ_6_7">36,854</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_p89KyY84M0CQc_Pj4L6l2g_7_3">89</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_syC6ojVM90qDNAB5afrBng_7_5">123</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_u-14K45heUuHgiZl3OmgOA_7_7">204</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_qM5_3XHIEEmW00KYIcZ4GA_8_3">76</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_SXCIgq2520q0ifTKYF1I_A_8_5">73</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares" scale="3" id="Tc_78B1LrtQFkuECOwAX050Kg_8_7">73</ix:nonFraction></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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_2YyyaATb5k6mqqJv1goa6g_9_3">36,450</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_zoVy8jIB40OjBLVIo4pToQ_9_5">36,738</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_grKWJm0U9k6HbPIll7npiA_9_7">37,131</ix:nonFraction></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="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="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:continuation><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><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Tb_MFMisaChcE6zcJrckQm9Gw" continuedAt="Tb_MFMisaChcE6zcJrckQm9Gw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">15. Stock-Based Compensation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Grants of stock options, restricted stock and restricted stock units, and performance share units have been, under the 2012 Plan and under the 2017 Plan, determined and administered by the compensation committee of the Board of Directors. In 2019, the Board of Directors approved a change to the structure of long-term incentive grants to remove stock options, commencing with the March 2019 equity grant. Total stock-based compensation expense was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_JgzxcMieME-az6OXmXJ9-A">10.6</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_GFmWkjhKcECWce-BdvjHeg">6.9</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_T-lULPnn70mVfNqhFIkWzQ">5.9</ix:nonFraction>&#160;million for the years ended December&#160;31, 2021, 2020 and 2019, respectively. Stock-based compensation expense is recognized using the straight-line method over the vesting period and generally vests over a <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_NwREXGko9kuTxvk9yjo8Fw"><span style="white-space:pre-wrap;">three-year</span></ix:nonNumeric><span style="white-space:pre-wrap;"> vesting period. Certain awards provide for accelerated vesting when the sum of an employee&#39;s age and years of service is at least </span><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA" format="ixt-sec:duryear" name="fix:ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" id="Narr_SPiWMlj970GzyHjiIqG75Q"><span style="white-space:pre-wrap;">75</span></ix:nonNumeric><span style="white-space:pre-wrap;">. We recognize forfeitures as they occur. Total income tax benefit recognized for stock-based compensation arrangements was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="6" id="Narr_q_0mRh1J8EmW6c5HJoza3A">2.2</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="6" id="Narr_A-_zQwXOkkGHMB7dE8exsw">1.5</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="6" id="Narr_k95zC_xM2EWDAHKxdfZHyg">1.3</ix:nonFraction>&#160;million for each of the years ended December&#160;31, 2021, 2020 and 2019. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We generally issue treasury shares for stock options and restricted stock, unless treasury shares are not available.  Upon the vesting of restricted shares, we have allowed the holder to elect to surrender an amount of shares to meet their statutory tax withholding requirements. These shares are accounted for as treasury stock based upon the value of the stock on the date of vesting.</span></p></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">77</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.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;max-width:100%;position:relative;"><a id="_6f9f611d_35c7_4610_b975_efc299793f4b"></a><a id="Tc_7bQIoufZ1U-lpMYfp22VQg_1_2"></a><a id="Tc_PLZZN2xoPUGQIB0wTeXxtA_2_2"></a><a id="Tc_Bz2By4OLTkSmTlIFIp2p5g_3_4"></a><a id="Tc_kziebMXCfkS0vO9fbsKofw_4_4"></a><a id="Tc_SsHtdaWyXE6bZhfSFqsfIg_5_0"></a><a id="Tc_rPxSDW-f2U-c6898IoU_eQ_5_2"></a><a id="Tc_dzowRY21sk6qgp3Q04SnJg_5_4"></a><a id="Tc_kHdg13ywQEiqsjbGBhIIIw_6_0"></a><a id="Tc_rW4xcvxCmUW6ashbhnTpVw_6_4"></a><a id="Tc_27TMOKn5T0-vH3Om18eygw_7_0"></a><a id="Tc_pn8afvpx6U6AApPgP5HKyA_7_2"></a><a id="Tc_VZuxwCBxhkWfDoimxXghqw_7_4"></a><a id="Tc_E_Yd12sOxEapcn50fkSLjg_7_5"></a><a id="Tc_l6pGwvD63kKT15FEbuJxxw_8_0"></a><a id="Tc_antif_jOakKTdk5X7pEK0g_8_4"></a><a id="Tc_vFTmem_6ZEOUG0LvbXujVA_9_0"></a><a id="Tc_WokFtZvcb0qIWgtLZKSrLQ_9_2"></a><a id="Tc_1NiOaHru6ki7DhIzcXP-GA_9_4"></a><a id="Tc_befCNegqDEOSmN0OOUr96A_9_5"></a><a id="Tc_d6wgQrmOVUaJIGywuJqFcw_10_0"></a><a id="Tc_mPgLNh3BMUGk_H0ygsk56A_10_2"></a><a id="Tc_09KwS6dCakaSuctce2-CyA_10_4"></a><a id="Tc_npAQP4kjokaVOil08EWBmw_10_5"></a><a id="Tc_GRBU-gufQUWsROxZ8J4yFg_11_0"></a><a id="Tc_r3DpyvFlyEGWkz4G99AYoQ_11_4"></a><a id="Tc_BFmNRRM-cUasu_I-tHNWOw_12_0"></a><a id="_473b91d4_919d_407c_b51e_628aa631567c"></a><a id="Tc_2VSkfjjnsUCaisMrPSjGuw_1_2"></a><a id="Tc_OT2qkKZnX0qvsRyWHbt_vg_2_4"></a><a id="Tc_zAyB9usTjEaLP-M7Zl-t-w_3_2"></a><a id="Tc_NifFUpvPQkCfdi__60GVoA_3_4"></a><a id="Tc_JTqoYSeU5UCzxcQTkBwntw_4_2"></a><a id="Tc_SHOvTR3x20mshTog1i2-HA_4_4"></a><a id="Tc_Km98_6Kte0qu9I7I9PRDBw_4_6"></a><a id="Tc_waobV1ba00SPC7MeLPq8eA_5_2"></a><a id="Tc_OGLiK2ivokaTJZSqeHpB5Q_5_4"></a><a id="Tc_MPJ0QPiEPkWXjY63RXiQIw_5_6"></a><a id="Tc_9Z96EjcLuU2d7nXwMOdM6A_6_0"></a><a id="Tc_Gs8L3ukQMUWz5Ldq71lJhQ_6_2"></a><a id="Tc_JTd4hX8esk25Mc2RmO9-qw_6_4"></a><a id="Tc_3L_bga0rQUie1CJZIleIJg_6_6"></a><a id="Tc_2NbCHRemE0SFqdizHRO0Zg_7_0"></a><a id="Tc_7CrcB40pqE2XkfDWSfe3jQ_7_6"></a><a id="Tc_JmI0u1ACB0mWg3NPU8wnjg_8_0"></a><a id="Tc_6sA9WAq9OUelw-_xh3V9rQ_8_6"></a><a id="Tc_7TD9s39eOEC1yNjq-ElhRw_9_0"></a><a id="Tc_x2-KK-1pnUyhLGe5nR_5vw_9_6"></a><a id="_353dcf00_9e42_4e57_90c4_6f836320bd22"></a><a id="Tc_iHVnPURrH0ypsntcuHRkZA_1_2"></a><a id="Tc_BbkKRziOMUmDZZ2hou6WIA_2_2"></a><a id="Tc_O4YVKu4aBEOQZ-hQtl9clw_3_4"></a><a id="Tc_Mppa60sNBkS3lKXhB-ZzNQ_4_4"></a><a id="Tc_nlm9hFaeSEO4klypRMFenw_5_0"></a><a id="Tc_oIzP9sr3BUez2rNVen-CUg_5_2"></a><a id="Tc_X3qnJ-MVWEuHX97lWm3UWg_5_4"></a><a id="Tc_EHltGksP8EqHMukaV0v0pg_6_0"></a><a id="Tc_lfB-3WTvXE-sEBch01e8sw_6_4"></a><a id="Tc_m-2323wURUWXSBCvkYjTGA_7_0"></a><a id="Tc_pcWpXxV7pUqyyA8k4FbOig_7_4"></a><a id="Tc_H8B-1lF-GEONHUIC-OZpAQ_8_0"></a><a id="Tc_3radkEN0ZkqvZjdOTnubXQ_8_4"></a><a id="Tc_tIIU2LVjXEyTSz7jikEwpw_9_0"></a><a id="Tc_dGuaZjU9pUeANmnL5wVVJQ_9_2"></a><a id="Tc_kFylqwSPq0yRQm9r6CqcUA_9_4"></a><a id="Tc_0QUkdLvNbkmqZ1KgorR8Yg_9_5"></a><a id="Tc_Q5cdyJlIBEmKY0aBG6pS6Q_10_0"></a><a id="Tc_kEHsVfzWEkqkagNzYqBfOg_10_4"></a><ix:continuation id="Tb_MFMisaChcE6zcJrckQm9Gw_cont1" continuedAt="Tb_MFMisaChcE6zcJrckQm9Gw_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Stock options are accounted for as equity instruments. The fair value of each option award is estimated, based on several assumptions, on the date of grant using the Black-Scholes option valuation model. We did not grant any options in 2019, 2020 or 2021. We had <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" scale="6" id="Narr_4kF1wulvNkq3HaT2H_oZCg">no</ix:nonFraction> unrecognized compensation cost related to stock options and <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Narr_lsL3-PJK2E6ixNlsvbn53w">no</ix:nonFraction> unvested stock options as of December 31, 2021. The total fair value of options vested during the year ended December&#160;31, 2021 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_NpMYQqtbfkOdvACzBtgEqw">0.4</ix:nonFraction>&#160;million.</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Tb_h9fbpRQOH0617FrpLsMUqw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our stock option plans (shares 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:50%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.55%;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:3.29%;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.97%;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:3.29%;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:3.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:17.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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.31%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.55%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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.97%;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:3.29%;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:20.04%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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;">Stock Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;">Exercise Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="3" id="Tc_KjdhsjjyVUOXoR2oBHpQIQ_6_2">268</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_4KeU5dMlWEuoa16gMYPwVA_6_5">30.53</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="Tc_JO0ZGj-ztU-Wpo5oeYifKQ_8_2">198</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_qbyKu-tPjkuxGnBH--ZKTQ_8_5">28.95</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="3" id="Tc_od9MIZTjtkWYGCspRA7H-w_11_2">70</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_lKwcQMCAVkCBf1NiYEUtkg_11_5">34.97</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Options exercisable at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" scale="3" id="Tc_PJcGEb7W_Uyn06miRdV8UA_12_2">70</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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: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:17.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:0.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></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The total intrinsic value of options exercised during the years ended December&#160;31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_aDUq3teiRUys9M0cze2y-A">10.8</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_MP9TuGHwgkKr3t_gkjwQfg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_3r8zkfYxekywNkPdIKt90A">3.2</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_2TDYtv8R7kOzs7W1j1ve-g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_8n3vsFpkIkK3pga9DbcZ_g">3.5</ix:nonFraction>&#160;million, respectively. As of December&#160;31, 2021, we have <ix:nonFraction unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="6" id="Narr_BT2bTVENHk6R3KNnXFFI3A">0.1</ix:nonFraction>&#160;million options outstanding and exercisable; these options have a weighted-average exercise price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Narr_p2zatBW2X0KG9NMKiimJDA">34.97</ix:nonFraction> per share, have a weighted-average remaining contractual term of <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Narr_XOMWT2bDLk6AWTi72Rcz8w"><span style="white-space:pre-wrap;">5.0</span></ix:nonNumeric><span style="white-space:pre-wrap;">&#160;years and an aggregate intrinsic value of $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="6" id="Narr_UmV5Ob6IRUOy4MRvQ9pTEA">4.5</ix:nonFraction>&#160;million. </span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" id="Tb_MbVy8o8FZ0W-eVjbVt_-0g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes information about stock options outstanding at December&#160;31, 2021 (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.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: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:14.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: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:12.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.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:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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></tr><tr><td style="vertical-align:bottom;width:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:46.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;">Options&#160;Outstanding and Exercisable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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><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: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.83%;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><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: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.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;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Number</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Outstanding and</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Exercisable at</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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;">Range&#160;of&#160;Exercise&#160;Prices</b></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: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.83%;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;">12/31/2021</b></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: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.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;">Life (in years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.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;">Exercise&#160;Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_HPdM7qvTpE-qh4yREiwKbA">16.15</ix:nonFraction> - $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_zX3HEyvKik-06CG_gwSeFw">30.36</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="3" id="Tc_AW9E-vbALESeKL-3R7kMVg_7_2">28</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_p2A2AKqPZ0Ka_xwC-Mw8fA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_eC3BqKwBAkWDE7iA6ug-FQ_7_4"> 4.0</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_xq6yEbSc1UmK2SJi5yUOEA_7_7">28.13</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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:49.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_XgfuWdh9yU-_edPmKGGvng">36.25</ix:nonFraction> - $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_ADDocH1KqUKB9rzwvd-egg">54.38</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="3" id="Tc_04lrzYHEyEOYsdPBUt4IOA_8_2">42</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember__Ygvz9Bia0C9yTDza1KaXw" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_61wDOuREFUOCxCWUZ6PzRA_8_4"> 5.7</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;margin:0pt;padding:0pt;"><p 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.63%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_C4vmQNMNlUGAYjixYv471A_8_7">39.44</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_PMbp_YtQrkWTVLsU7dnOqg">16.15</ix:nonFraction> - $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_oM1_kpmNV0qJSFHT8g05Xg">54.38</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="3" id="Tc_BvU7Qg2RyESal-s3IG4X6g_9_2">70</ix:nonFraction></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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_pSGnW_R4hUqiqPqmNla8MQ" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc__8tEf2-or0mFPPl3GhFWyA_9_4"> 5.0</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_uhnlvBV3lUuu9cGGoyk39A_9_7">34.97</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"><span style="font-size:1pt;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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Restricted Stock and Restricted Stock Units</span></p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember_AO-XwJFX90GvX7_VBZ9rCw" name="us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock" id="Tb_BSOh0oaZs0iWnggo_zLgXg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our restricted stock plans (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.84%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.66%;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.42%;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:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.4%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.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;white-space:pre-wrap;">December 31,  2021</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Weighted</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Average&#160;Grant</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: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:71.84%;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;">Restricted&#160;Stock&#160;and&#160;Restricted&#160;Stock&#160;Units</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.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;">Date&#160;Fair&#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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="Tc_favEGNIu6kKhUUTPp3l--w_6_2">120</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_f72OSk0SvESxmmt-B3BX8A_6_5">45.21</ix:nonFraction></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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;background:#cceeff;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="Tc_EdCCZl1ns06HeWtVn-ZVpQ_7_2">67</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;background:#cceeff;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_f1laUA5fJUugSERnC9wSFw_7_5">76.73</ix:nonFraction></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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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_shares_qGIZk2nKd0anMaA5e4DH1A" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="Tc_9YHAAJAsfECl4wQX7PSRFA_8_2">72</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_J4kyY2AaJ0a42ON0c-rOaQ_8_5">54.53</ix:nonFraction></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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;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;"> &#8212;</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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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_qGIZk2nKd0anMaA5e4DH1A" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="Tc_uqDiJ8bTrEq_oyifF9lM1A_10_2">115</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;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_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_lfYaWU0TuES0Brg0wlUeLw_10_5">57.74</ix:nonFraction></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></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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;">Approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_IQgphuXZK0uvg66BoD_MmQ">1.5</ix:nonFraction>&#160;million of compensation expense related to restricted stock and restricted stock units will be recognized over a weighted-average period of <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_sOAA-tYmjkmBSCljKAGNMg">1.8</ix:nonNumeric>&#160;years. The total fair value of shares vested during the year ended </p></ix:continuation></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">78</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.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;max-width:100%;position:relative;"><ix:continuation id="Tb_MFMisaChcE6zcJrckQm9Gw_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">December&#160;31, 2021 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" id="Narr_tKYn1aTCW0-JZqm1R4BEIg">3.9</ix:nonFraction>&#160;million. The weighted-average fair value per share of restricted stock shares and units awarded during 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_hCpT66xrQE288xaBjvVH1w">76.73</ix:nonFraction>, $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_VnpDIpPrf0WDxhWJ6_6KXQ">39.03</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_shI8lXEzWUy0Rz-V9PY8CQ">51.02</ix:nonFraction>, respectively. The aggregate intrinsic value of restricted stock vested during the years ended December&#160;31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="Narr_SmbJ-CTVSECgwXIxpqVcmg">5.5</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="Narr_lT6EeFSQaEuLAsUr0qUw1w">2.9</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="Narr_015MAieYMUmVpI0qDRukLg">3.5</ix:nonFraction> million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Performance Stock Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Under the 2012 Plan and the 2017 Plan, we granted dollar-denominated performance vesting restricted stock units (&#8220;PSUs&#8221;), which cliff vest at the end of a <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_Ya3QuEJLsUee7NbZqnwJlw">three-year</ix:nonNumeric> performance period. The PSUs are subject to <ix:nonFraction unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="INF" format="ixt-sec:numwordsen" name="fix:TypesOfPerformanceStockUnits" scale="0" id="Narr_1h84c95ySU-Q4vxmFgxV0g">two</ix:nonFraction> performance measures; <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" scale="-2" id="Narr_DOwk9RLBIUypK6rQU9jCgA">50</ix:nonFraction>% of the PSUs are based on the annual performance of our stock price relative to a group of our peers (total shareholder return) and <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="2" format="ixt:numdotdecimal" name="fix:PercentageOfUnitsMeasuredOnPredeterminedEPS" scale="-2" id="Narr_bOKRqiFSwUuokXs6cDUCeQ">50</ix:nonFraction>% of the PSUs are measured based on meeting or exceeding a pre-determined annual earnings per share target as set by our Board of Directors (EPS). Depending on the Company&#8217;s performance in relation to the established performance measures, the awards may vest at <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_TIRAAjbzQE-xstZuxMM9ww" decimals="0" format="ixt-sec:numwordsen" name="fix:PerformanceMultiplierForDollarDenominatedAwardGranted" scale="0" id="Narr_2_D7cdRZkkm_BoV19ANRfA">zero</ix:nonFraction> to a maximum of <ix:nonFraction unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ORtjML83106tX4PSDAn5xQ" decimals="1" format="ixt:numdotdecimal" name="fix:PerformanceMultiplierForDollarDenominatedAwardGranted" scale="0" id="Narr_cGbHcN-LJ0KMEdQjKsuYpQ">2.0</ix:nonFraction> times the dollar-denominated award granted at target. Upon achievement of the necessary performance metrics, the award will be determined in dollars and may be settled in cash or stock based on the market price of the Company&#8217;s common stock at the end of the performance period, at our discretion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Compensation expense for dollar-denominated performance units will ultimately be equal to the final dollar value awarded to the grantee upon vesting, settled either in cash or stock. However, throughout the performance period we must record and accrue expense based on an estimate of that future payout. For units determined by EPS performance, the awards are evaluated quarterly against established targets in order to estimate the liability throughout the vesting period. For units determined by total shareholder return performance, a Monte Carlo simulation model was used to estimate accruals throughout the vesting period. The model simulates our total shareholder return and compares it against our peer group over the <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" format="ixt-sec:durwordsen" name="fix:PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" id="Narr_ytB29lniiUebZNH2QKmdIQ">three-year</ix:nonNumeric> performance period to produce a predicted distribution of relative share performance. This is applied to the reward criteria to give an expected value of the total shareholder return element. The calculated fair market value as of December 31, 2021 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="-5" format="ixt:numdotdecimal" name="fix:ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" scale="6" id="Narr_tFuGP-uSWke0K52noAuY5A">10.2</ix:nonFraction> million. Of this amount, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="-5" format="ixt:numdotdecimal" name="fix:SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" scale="6" id="Narr_JenvkldRd06qctrAPdJFuw">3.6</ix:nonFraction> million relates to the PSUs granted in 2019 whose performance period ended December 31, 2021. These awards will be settled within the upcoming year either in cash or stock. The expense related to performance stock units for the years ended December&#160;31, 2021, 2020 and 2019 was $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_b_lxakjBIEuVaLvfzDNVSQ">5.7</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_9SDAJRGL7k2bd1DHR0pMjw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_crcBeXZhO0yf3dAaHw8cpQ">2.7</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_hs1uVtRQu0GDdUMe7AiKyQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="Narr_x1MolDpVSEC1ceAB7b38vQ">1.9</ix:nonFraction>&#160;million, respectively. At the December 31, 2021 calculated fair market value, approximately $<ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_fPT1dRnlmUCCPgxmfZwEAw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_d-WfXdYwckOC7KhqH89IBA">1.1</ix:nonFraction>&#160;million of compensation expense related to performance stock units will be recognized over a weighted-average period of <ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_LwuASMorbkWPiqn2u-gFlw">1.4</ix:nonNumeric>&#160;years. </p></ix:continuation><a id="_4fabbcb1_74b4_4868_96ad_7be500184e60"></a><a id="Tc_Ueifkp1QPU6YS2uJ-2SDCg_1_2"></a><a id="Tc_wxnfQQEUGE6-daWOBe40Ow_1_5"></a><a id="Tc_pgeWRlV9CUipiPbIxi1jng_1_8"></a><a id="Tc_dmfpp_tMj0uPPEbQnLRPdg_1_11"></a><a id="Tc_dUSF4SUzEkaPH-BvfCYb9Q_2_0"></a><a id="Tc_sxphncd7k0KpfssiZ4MuYA_2_2"></a><a id="Tc_XxsTlr-kA0G2tu2ZgiFVKg_2_5"></a><a id="Tc_ntbjZkkuLUWsiK_nw2Z0_A_2_8"></a><a id="Tc_kYxl0TyG40qwxorYjlfpNQ_2_11"></a><a id="Tc_W9pJQ6DG5kysnHSlxlchQg_3_0"></a><a id="Tc_24S_bwEX9ESTWmXAJYuiDQ_3_2"></a><a id="Tc_Kngr_CXU60-fN507nSu-8w_3_5"></a><a id="Tc_bEXzqL3Br0ybySiHmoykyQ_3_8"></a><a id="Tc_BNRfl0VbJUKUgQXlL_K5gA_3_11"></a><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:SegmentReportingDisclosureTextBlock" id="Tb_630OtuWbpUSzHA1Y1ghY4g" continuedAt="Tb_630OtuWbpUSzHA1Y1ghY4g_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">16. Segment Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We have <ix:nonFraction unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_pCTy9XUFbkSbhdTG0Qalfg">two</ix:nonFraction> reportable segments: (a) our mechanical segment, which includes HVAC, plumbing, piping, and controls, as well as off-site construction, monitoring and fire protection; and (b) our electrical segment, which includes installation and servicing of electrical systems. We consider these <ix:nonFraction unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_Z4s6Pi4ruEq0rfm9v3WNfQ">two</ix:nonFraction> lines of business to be separate segments because they require different skill sets, and the business models for providing services have some differences, as a mechanical system requires ongoing maintenance and monitoring and an electrical system generally does not. However, the business model for installation of new systems or retrofitting existing systems is very similar between the <ix:nonFraction unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_9FXWQzsglkyXGoEnPHzgvg">two</ix:nonFraction> segments. Segment information is prepared on the same basis that our management reviews financial information for operational decision-making purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Our activities are within the mechanical services industry and the electrical services industry, which represent our <ix:nonFraction unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_sQLnpgusQUOtUsUdMQxtWg">two</ix:nonFraction> reportable segments. We aggregate our operating segments into <ix:nonFraction unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_3dHSBJJLJE2ODlX9s_-uZA">two</ix:nonFraction> reportable segments, as the operating segments meet all of the aggregation criteria. On January 1, 2021, we completed a change in the structure of our internal organization that resulted in a portion of our electrical segment&#8217;s business being moved to the mechanical segment. We reallocated goodwill between our reorganized reporting units and have recast comparative prior period information for the reorganized reportable segments in accordance with the guidance on segment reporting. Accordingly, we have recast comparative prior period information for the reorganized reportable segments in the tables below. Substantially all of our revenue is generated, and all of our assets are located, in the United States, our country of domicile. The following table presents information about our reportable segments (in thousands):</p><ix:nonNumeric contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Tb_g6pnGAgFMk6kYZvXAnREzg" continuedAt="Tb_g6pnGAgFMk6kYZvXAnREzg_cont1" escape="true"><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:32.36%;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:normal;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:normal;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:10.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:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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:normal;width:5.46%;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:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.58%;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:normal;width:1.91%;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:normal;width:11.36%;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:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_Pl5JNyTdwEuExkUGgvxiWA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_LWZMVjxF6UWuoWEvh8lU4Q_2_3">1,452,527</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_QK87lvCEFEeaZnIWHdi9PQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_52W4Rk9JbEG7c9h128YzuA_2_6">690,364</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_tLE31vHPOU6043kMT4WWkQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_ADwd0jV-F0ig-NDv3hZJNA_2_9">66,223</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_GopheIaCS0WDMerklC42OQ_2_12">2,209,114</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2020</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_m8LIORfOs0Wtc0Mh1nc46w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_PpMN_EU6QkWdm9lpVcMXqg_3_3">1,246,098</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_GUSkRB9uL0qVcKDRmgb3aQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_0LAHGL2JLEiJiid82lJYjQ_3_6">419,475</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_j-W2z0OaUUyD3hgq7N05mQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_NcaERiRu0Ea2e4jctdNhWA_3_9">91,782</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_EdGWhwvrhEeIf0dBl8vYyQ_3_12">1,757,355</ix:nonFraction></p></td></tr></table></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">79</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.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;max-width:100%;position:relative;"><a id="Tc_xbYjhEyYiUyxSSvnjPrTGQ_5_2"></a><a id="Tc_U3xh4FmZH0iPVmbIGtePoQ_6_2"></a><a id="Tc_JEF0UWK5R0KLewseQ2bNdw_6_5"></a><a id="Tc_Yge0X8AtTkC8z0mN_KwVxg_6_8"></a><a id="Tc_hs1GcfjSGU-Kyye-41Yalw_6_11"></a><a id="Tc_mRY3J_vO0kyrRlyXG7sqsw_7_0"></a><a id="Tc_qCaNK_pLFkylWXwr3NhNpg_7_2"></a><a id="Tc_QwJXWfXCMUSOzPOwqyP-wg_7_5"></a><a id="Tc_1VEY7v_4mESquxlliUgIGw_7_8"></a><a id="Tc_aIPVppOxyk2ofTW7Ox7iDg_7_9"></a><a id="Tc_t_e3MD-6AU65MLBZOJfMcQ_7_11"></a><a id="Tc_Z31Bf0UGW0mvGaaO6O_zLg_8_0"></a><a id="Tc_umc6qWwPx0q4InGJ0qjHBQ_8_2"></a><a id="Tc_VnsFPVttGUG4iNWMFqpMKQ_8_5"></a><a id="Tc_NuqRClsVOUSUjPyfC0puZg_8_8"></a><a id="Tc_an46HlhVqk2kFQnSCvSgiw_8_9"></a><a id="Tc_1xvIiWV7CEyknxvX9htAsQ_8_11"></a><a id="Tc_tnbAUr5pmU6BS2FOvZBzOA_9_0"></a><a id="Tc_ALIqAvyYKki76JxepbItbg_9_2"></a><a id="Tc_55BooLeIUkCpGQ_o9XpjeA_9_5"></a><a id="Tc_YQZ42WDdyUOEUooi9VkugA_9_8"></a><a id="Tc_deX5d-nVjkaELaNs7gmEXA_9_11"></a><a id="Tc_x0Nrbgp7JkG8nQn_6-wKYQ_11_2"></a><a id="Tc_2vCfYyu2ZEipP7M3lJIHPw_12_2"></a><a id="Tc_awuN58YWkUyC31UNE7WAkA_12_5"></a><a id="Tc_Ili2v-8ZukulcuYl2LIBEw_12_8"></a><a id="Tc_jkvK8kSBD0C4fmSTd62hRA_12_11"></a><a id="Tc__Lhvs648VEevc7TuQ8SXyA_13_0"></a><a id="Tc_Pn7DqT4w2ESec3kcHyitxw_13_2"></a><a id="Tc_0XuKw_q_L0mzaydS2wG3eQ_13_5"></a><a id="Tc_bhTLrIe43Uym3QUgwkL30w_13_8"></a><a id="Tc_M4dSV0qTK0qGvdSzE3JgtA_13_9"></a><a id="Tc_nn_ub5mPOkyawl47lpxCMg_13_11"></a><a id="Tc_2U1ranY1y0-prWILV7gakw_14_0"></a><a id="Tc_k-SQAHppdUKaN6ycKuoICA_14_2"></a><a id="Tc_y5ByjFQlcU2VEYo3gOzLMQ_14_5"></a><a id="Tc__nuAMdwV9kycanTFOt1flA_14_8"></a><a id="Tc_Urd5hTv5E0q0rs9p3uAJlQ_14_9"></a><a id="Tc_Rc3ay0ImW0G7lyUiI3A0kQ_14_11"></a><a id="Tc_iMZQiXjPZUWAtXFqGGfHuw_15_0"></a><a id="Tc_aKJyBJrn-k-ZLwkraSZ-kg_15_2"></a><a id="Tc_wM6kEONnRk6ykAcLXzaTqA_15_5"></a><a id="Tc_VhmZQuMcakqczTLS3GzW8w_15_8"></a><a id="Tc_7rCKQRRr80C7nmrgeZaNWw_15_11"></a><a id="Tc_EqkLa0SzukiikLsvb_092Q_17_2"></a><a id="Tc_sLSXJmksXUKKYnX5KUBLtg_18_2"></a><a id="Tc_3Gg-dALrwE2F8kyXjx0jlg_18_5"></a><a id="Tc_HWY9NRQi7EOMkKoEcA2eTA_18_8"></a><a id="Tc_N-Z1YFavwUyZPIrUeD3YpA_18_11"></a><a id="Tc_WchpTAmR2UyrBrHORmFT9w_19_0"></a><a id="Tc_mz4F1SNqYECB-EY9SWtraw_19_2"></a><a id="Tc_dYCBy48G7Eiatvuxd9Vf1g_19_5"></a><a id="Tc_R7UYUoEysUWSg4GQV-MaVA_19_8"></a><a id="Tc_fnZL7VM-_kq39i2IDz3tEw_19_9"></a><a id="Tc_S4qh4H0-JUuijUdFvQ4g6g_19_11"></a><a id="Tc_OgVBz5QvGU-tQsvwoo0s3Q_20_0"></a><a id="Tc_4qhHJqPxD0idYuHJP2c7ig_20_2"></a><a id="Tc_xpSAkQpaNEWcXOqGBwn2JQ_20_5"></a><a id="Tc_0HAzTMA6wU-pj3HKqAvrjg_20_8"></a><a id="Tc_W8WGt8OMHEGUke-wKAl4Gw_20_9"></a><a id="Tc_zSxgA9ijbE2RZD-wtL8irA_20_11"></a><a id="Tc_dnRNgBpsZEW6Jro_sLbxyw_21_0"></a><a id="Tc_Gjo5m90XrkepPV5Sha2UHg_21_2"></a><a id="Tc_smYZeOkmDEeP7AbWnzabCg_21_5"></a><a id="Tc_AEHch68z2k2ojlZUumISfQ_21_8"></a><a id="Tc_m3EJeW_3Y0uXGiAeiiqZKA_21_11"></a><ix:continuation id="Tb_630OtuWbpUSzHA1Y1ghY4g_cont1"><ix:continuation id="Tb_g6pnGAgFMk6kYZvXAnREzg_cont1"><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><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_mZxNLO0J8kS8aN_l2WfH-A_7_3">2,542,623</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_WJQBc2gF506cYH4F7QyzEA_7_6">531,013</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_5tv4ZpP2uEmQIukCCXAnyw_7_12">3,073,636</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_jflD0UrhUUWmkffY-01jpA_8_3">486,346</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_ZOuCD6pziEWx5lryFzJmTQ_8_6">76,861</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_tsqhkiAlREG5z0df-So83w_8_12">563,207</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_Gh0uRwfqQEC3dEz-xqT8ag_9_3">19,408</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_z-Jeee4rrUyl6nxkrINDyw_9_6">2,413</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_P-U_axaeAUSCpyPBJfFlTw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_Ap3NH-5nskKHr_is5tr1kQ_9_9">509</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_N9q9nMj33ECNNZNByUnm3w_9_12">22,330</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_plEYSA0FdUS2b3JV7jhLHA_13_3">2,430,632</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_jVhiftfAVU-1fEB-kYqXCw_13_6">426,027</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_ps-wpc77s0qcw0XyKsn7fg_13_12">2,856,659</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_TNwUVQZr20ieKcLM7spMOA_14_3">513,760</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_uWRH2b0dpk2qSAbyCF8Bmw_14_6">33,223</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_8fYxRl1DY06SEhTLzcAfew_14_12">546,983</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_QHCeJVXiDE67BKsM3vD6Xg_15_3">22,561</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_55mKQhBKDES-HnTzIxCq0A_15_6">944</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_e4IazHmIVEClFC554FxRrA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_UIsly92JckqYxEzK1c3XXA_15_9">626</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_fqkq17gIfUifbnTzSlPOzA_15_12">24,131</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2019</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_9QjjuMvg7kGdV_fqZtYZgA_19_3">2,272,031</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_8xGosqywGEq4AFtKyD29Qg_19_6">343,246</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Revenues" scale="3" id="Tc_VJyY51D9nU6qgL0aLdUsbA_19_12">2,615,277</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_cN2GnkmcRUWROtn1dljBHQ_20_3">469,347</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> <ix:nonFraction unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_6dRgQF3nu0G90S1Zgz3G-g_20_6">32,596</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_HcXNjfUmJ0mLdsppUFE2FQ_20_12">501,943</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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_USD_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_PXOurJRVxEm7APv_wAgE9g_21_3">28,070</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_aARE9q9FVEGfn6PhlWJ4Ug_21_6">1,367</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_mQ7eJpZb-kq3uBkiPbm_CA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_F7vnIQGbOkOFWVb2sPGmug_21_9">2,313</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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_2m1YzvH9REKZTKx8kUgpLQ" contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_pHc9sjxCe0-CIFUzB44oyA_21_12">31,750</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 3pt 0pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:127.5pt;"></span><span style="display:inline-block;width:8pt;"></span><span style="display:inline-block;width:6.95pt;"></span><span style="display:inline-block;width:45.5pt;"></span><span style="display:inline-block;width:18.05pt;"></span><span style="display:inline-block;width:6.95pt;"></span><span style="display:inline-block;width:38pt;"></span><span style="display:inline-block;width:21pt;"></span><span style="display:inline-block;width:6.95pt;"></span><span style="display:inline-block;width:47.4pt;"></span><span style="display:inline-block;width:17.5pt;"></span><span style="display:inline-block;width:7pt;"></span><span style="margin-right:0pt;visibility:hidden;">&#8203;</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">80</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="_e6f828a7_07e1_41b5_b504_442ff7e30bb3"></a><a id="ITEM9ChangesinandDisagreementswithAccoun"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 9.  </b><span style="font-style:italic;font-weight:bold;">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure</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><a id="_b6907571_c7df_4be0_84cf_ce644e5d365a"></a><a id="ITEM9AControlsandProcedures_403685"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 9A.  </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 0pt 12pt 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 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>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;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>There have not been any changes in our internal control over financial reporting (as such term is defined in Rules 13a 15(f) and 15d 15(f) under the Securities Exchange Act of 1934) during the three months ended December 31, 2021 that have materially affected, or are reasonably likely to materially affect, internal control over financial reporting.</p><a id="_62921025_69e0_4dfd_9a14_6051d25e34cc"></a><a id="ManagementsReportonInternalControloverFi"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Management&#8217;s Report on Internal Control over Financial Reporting</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as such term is defined in Exchange Act Rules&#160;13a-15(f) and 15d-15(f). Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, we conducted an evaluation of the effectiveness of our internal control over financial reporting as of December&#160;31, 2021 based on the framework in Internal Control&#8212;Integrated Framework issued by the Committee of Sponsoring Organizations of the Treadway Commission (COSO 2013 framework). Based on that evaluation, our management concluded that our internal control over financial reporting was effective as of December&#160;31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company acquired Amteck Holdco LLC (&#8220;Amteck&#8221;) in August 2021 and Ivey Mechanical Company, LLC (&#8220;Ivey&#8221;), MEP Holding Co., Inc. (&#8220;MEP Holdings&#8221;), Thermal Equipment Service, Inc. and TES Controls, LLC (collectively &#8220;Thermal&#8221;) and Kodiak Labor Solutions, LLC (&#8220;Kodiak&#8221;) in December 2021. Due to the recent nature of these business combinations, Amteck, Ivey, MEP Holdings, Thermal and Kodiak&#8217;s internal control over financial reporting and related processes have not been fully integrated into the Company&#8217;s existing systems and internal control over financial reporting as of December 31, 2021. As such, our management has excluded Amteck, Ivey, MEP Holdings, Thermal and Kodiak from its assessment of the effectiveness of internal control over financial reporting as of December 31, 2021. Collectively, Amteck, Ivey, MEP Holdings, Thermal and Kodiak comprised 18.3% of total assets and 3.2% of revenues in our consolidated financial statements as of and for the year ended December 31, 2021. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Deloitte&#160;&amp; Touche&#160;LLP, an independent registered public accounting firm, as stated in their report which is included elsewhere herein, has issued an attestation report auditing the effectiveness of our internal control over financial reporting as of December&#160;31, 2021.</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-align:center;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:0pt;"><span style="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;"> </b><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">81</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.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;max-width:100%;position:relative;"><a id="_d4c41e24_cc24_44b7_9271_d6c8c61f89ac"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Report of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;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;margin:0pt;">To the stockholders and the Board of Directors of Comfort Systems USA, Inc.</p><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;margin:0pt;"><b style="font-weight:bold;">Opinion on Internal Control over Financial Reporting</b></p><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;margin:0pt;">We have audited the internal control over financial reporting of Comfort Systems USA, Inc. and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2021, based on criteria established in <i style="font-style:italic;">Internal Control &#8212; Integrated Framework (2013) </i>issued by the Committee of Sponsoring Organizations of the Treadway Commission (COSO). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2021, based on criteria established in <i style="font-style:italic;">Internal Control &#8212; Integrated Framework (2013)</i> issued by COSO.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">We have also audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the consolidated financial statements for the year ended December 31, 2021, of the Company and our report dated February 23, 2022, expressed an unqualified opinion on those financial statements. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">As described in Management&#8217;s Report on Internal Control over Financial Reporting, management excluded from its assessment the internal control over financial reporting at Amteck Holdco LLC (acquired August 1, 2021), Ivey Mechanical Company, LLC (acquired December 1, 2021), MEP Holding Co., Inc., Thermal Equipment Service, Inc. and TES Controls, LLC, and Kodiak Labor Solutions, LLC (each acquired December 31, 2021), and whose financial statements collectively constitute 18.3% of total assets and 3.2% of total revenues in the consolidated financial statement amounts as of and for the year ended December 31, 2021. Accordingly, our audit did not include the internal control over financial reporting at Amteck Holdco LLC, Ivey Mechanical Company, LLC, MEP Holding Co., Inc., Thermal Equipment Service, Inc. and TES Controls, LLC, and Kodiak Labor Solutions, LLC.</p><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;margin:0pt;"><b style="font-weight:bold;">Basis for Opinion </b></p><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;margin:0pt;">The Company&#8217;s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management&#8217;s Report on Internal Control over Financial Reporting. Our responsibility is to express an opinion on the Company&#8217;s internal control over financial reporting based on our audit. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Our audit included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, testing and evaluating the design and operating effectiveness of internal control based on the assessed risk, and performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion. </p><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;margin:0pt;"><b style="font-weight:bold;">Definition and Limitations of Internal Control over Financial Reporting </b></p><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;margin:0pt;">A company&#8217;s internal control over financial reporting is a process designed 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. A company&#8217;s internal control over financial reporting includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#8217;s assets that could have a material effect on the financial statements. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate. </p><p style="font-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;margin:0pt;">/s/ Deloitte &amp; Touche LLP</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:4pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Houston, Texas</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 23, 2022</p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">82</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.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;max-width:100%;position:relative;"><a id="_0b055af2_955c_4614_a152_b2e17a6a8b36"></a><a id="ITEM9BOtherInformation_701400"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 9B.  </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;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><a id="_0d398455_f1f7_439c_a440_4fc616e45219"></a><a id="ITEM9CDisclosureRegardingForeignJurisdic"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 9C.  </b><span style="font-style:italic;font-weight:bold;">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 36pt;">Not applicable.</p><a id="_fe5affbb_4bb4_4af6_ab0a_1d839d5253a7"></a><a id="PARTIII_746927"></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;">PART III</b></p><a id="ITEM10DirectorsExecutiveOfficersandCorpo"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 10.  </b><span style="font-style:italic;font-weight:bold;">Directors, Executive Officers and Corporate Governance</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have adopted a code of ethics that applies to our principal executive officer, our principal financial officer, and our principal accounting officer, as well as to our other employees. This code of ethics consists of our Code of Conduct. The Company has made this code of ethics available on our website, as described in Item&#160;1 of this annual report on Form&#160;10-K. If we make substantive amendments to this code of ethics or grant any waiver, including any implicit waiver, we will disclose the nature of such amendment or waiver on our website or in a report on Form&#160;8-K within four business days of such amendment or waiver.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The other information called for by this item has been omitted in accordance with the instructions to Form&#160;10-K. The Company will file with the Commission a definitive proxy statement including the other information to be disclosed under this item in the 120&#160;days following December&#160;31, 2021 and such information is hereby incorporated by reference.</p><a id="_18af21a9_138d_43c4_8e89_6c87b0cf3905"></a><a id="ITEMS111213AND14_316091"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">ITEMS 11, 12, 13 AND 14.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">These items have been omitted in accordance with the instructions to Form&#160;10-K. The Company will file with the Commission a definitive proxy statement including the information to be disclosed under the items in the 120&#160;days following December&#160;31, 2021 and such information is hereby incorporated by reference.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 8pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_2005f3b0_3046_48af_bb60_d11b847795f3"></a><a id="PARTIV_441083"></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;">PART IV</b></p><a id="ITEM15ExhibitsandFinancialStatementSched"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 15.  </b><span style="font-style:italic;font-weight:bold;">Exhibits and Financial Statement Schedules</span></p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">(a)</i></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">The following documents are filed as part of this annual report on Form&#160;10-K:</i></p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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: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;">Consolidated Financial Statements: The Index to the Consolidated Financial Statements is included under Part II, Item 8 of this annual report on Form&#160;10-K and is incorporated herein by reference.</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:36pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Financial Statement Schedules:</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 72pt;">None.</p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">(b)</i></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">Exhibits</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 36pt;">Reference is made to the Index of Exhibits immediately following the signature page thereof, which is incorporated herein by reference.</p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">(c)</i></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;"><i style="font-style:italic;">Excluded financial statements:</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;">None.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p><a id="ITEM16Form10KSummary"></a><a id="Item16"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">ITEM 16.  </b><span style="font-style:italic;font-weight:bold;">Form 10-K Summary</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>None.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">83</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.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;max-width:100%;position:relative;"><a id="_81687802_a30a_44c6_8e9a_d8e071643df0"></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;">INDEX OF EXHIBITS</b></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:9.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%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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%;"></div></div></td><td style="vertical-align:bottom;width:56.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%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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><td style="vertical-align:bottom;width:8.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%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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%;"></div></div></td><td style="vertical-align:bottom;width:19.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%;"></div></div></td></tr><tr><td style="vertical-align:bottom;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:56.73%;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;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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 colspan="3" style="vertical-align:bottom;width:29.62%;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;">Incorporated&#160;by&#160;Reference</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">to&#160;the&#160;Exhibit&#160;Indicated&#160;Below</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">and&#160;to&#160;the&#160;Filing&#160;with&#160;the</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Commission&#160;Indicated&#160;Below</b></p></td></tr><tr><td style="vertical-align:bottom;width:9.43%;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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:56.73%;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;">Description&#160;of&#160;Exhibits</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:8.13%;border-bottom:1px solid #000000;border-top: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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid transparent;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:9pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:19.42%;border-bottom:1px solid #000000;border-top: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;">Filing&#160;or&#160;File&#160;Number</b></p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">3.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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-index.html"><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:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">333-24021</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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-index.html"><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:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.2&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">1998 Form&#160;10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">3.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.3&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">2003 Form&#160;10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">3.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">May&#160;20, 2016<br />Form&#160;8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">3.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">March 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 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">4.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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-index.html"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of certificate evidencing ownership of Common Stock of the Registrant</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">333-24021</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">4.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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="https://www.sec.gov/Archives/edgar/data/1035983/000155837020001491/ex-4d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Description of Registrant&#8217;s Securities</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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.2&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">2019 Form 10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000095012903003918/h07903exv10w1.txt"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Employment Agreement between the Company, Eastern Heating&#160;&amp; Cooling,&#160;Inc. and Alfred J. Giardinelli, Jr.</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">Second Quarter 2003<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746908005698/a2185250zex-10_3.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Comfort Systems USA,&#160;Inc. Executive Severance Policy</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.3&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">First Quarter 2008<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000110465909033654/a09-12567_2ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Directors and Officers Indemnification Agreement</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">May&#160;19, 2009<br />Form&#160;8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000110465910039133/a10-14233_1ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Second Amended and Restated Credit Agreement by and among Comfort Systems USA,&#160;Inc., as Borrower and Wells Fargo Bank, National Association, as Administrative Agent/Wells Fargo Securities&#160;LLC, as Sole Lead Arranger and Sole Lead Book Runner/Bank of Texas, N.A., Capital One, N.A., and Regions Bank as Co-Syndication Agent/and Certain Financial Institutions as Lenders</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">July&#160;22, 2010<br />Form&#160;8-K/A</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000110465910040867/a10-14873_1ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Stock Purchase Agreement, dated July&#160;28, 2010</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">July&#160;30, 2010<br />Form&#160;8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746911009144/a2206146zex-10_1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No.&#160;1 to Second Amended and Restated Credit Agreement, Second Amended and Restated Security Agreement, and Second Amended and Restated Pledge Agreement</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">Third Quarter 2011<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746913007932/a2216107zex-10_1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No.&#160;2 to Second Amended and Restated Credit Agreement and Amendment to Other Loan Documents</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">Second Quarter 2013<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746915001294/a2223211zex-10_33.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Option Award under the Comfort Systems USA,&#160;Inc. 2012 Equity Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.33&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">2014 Form&#160;10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746914008664/a2221896zex-10_1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No.&#160;3 to Second Amended and Restated Credit Agreement and Amendment to Other Loan Documents</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">Third Quarter 2014<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000110465914026747/a14-10230_1ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Agreement and Plan of Merger between the Company and Dyna Ten Corporation, dated April&#160;9, 2014</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">April&#160;9, 2014<br />Form&#160;8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746915008149/a2226337zex-10_1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Amended Change in Control Agreement</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">Third Quarter 2015<br />Form&#160;10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">10.12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000104746916010332/a2227387zex-10_40.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No.&#160;4 to Second Amended and Restated Credit Agreement and Amendment to Other Loan Documents</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;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;">2015 Form 10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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_1ex10d3.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of 2016 Stock Option Notice</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">March 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 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">*10.14</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:56.73%;margin:0pt;padding:0pt;"><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/000110465917001957/a17-1811_1ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Resignation and General Release Agreement between the Company and James Mylett, dated as of January 10, 2017</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:8.13%;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;">10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">January 11, 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</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="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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">84</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:9.43%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:56.73%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:8.13%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:19.42%;margin:0pt;padding:0pt;"></th></tr><tr><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:9.43%;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:9pt;visibility:hidden;">&#8203;</span></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.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:9pt;visibility:hidden;">&#8203;</span></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:56.73%;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></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.14%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></th><th colspan="3" style="font-weight:normal;text-align:left;vertical-align:bottom;width:29.62%;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;">Incorporated&#160;by&#160;Reference</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">to&#160;the&#160;Exhibit&#160;Indicated&#160;Below</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">and&#160;to&#160;the&#160;Filing&#160;with&#160;the</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Commission&#160;Indicated&#160;Below</b></p></th></tr><tr><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:9.43%;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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:56.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;">Description&#160;of&#160;Exhibits</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.14%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:8.13%;border-bottom:1px solid #000000;border-top: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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:19.42%;border-bottom:1px solid #000000;border-top: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;">Filing&#160;or&#160;File&#160;Number</b></p></th></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000110465917011244/a17-7023_1ex2d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Stock Purchase Agreement, dated February 21, 2017, by and among the Company, BCH, the Selling Shareholders and Daryl Blume, in his capacity as representative of the Selling Shareholders</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">2.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">February 23, 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000110465917020991/a17-10800_1ex10d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Promissory Note, dated April 1, 2017, issued by the Company in favor of each of the Selling Shareholders</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">April 3, 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837017002563/fix-20170523xdef14a.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">2017 Omnibus Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">April 10, 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Proxy Statement</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837017002563/fix-20170523xdef14a.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">2017 Senior Management Annual Performance Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">April 10, 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Proxy Statement</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837017002931/fix-20170331ex102e9479d.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Restricted Stock Unit Agreement under the Company&#8217;s 2012 Equity Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837017002931/fix-20170331ex103bc199c.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Stock Option Notice under the Company&#8217;s 2012 Equity Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837017002931/fix-20170331ex104628293.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Dollar-denominated Performance Restricted Stock Unit Agreement under the Company&#8217;s 2012 Equity Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2017</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837018003336/fix-20180331ex101c8a191.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Restricted Stock Unit Agreement under the Company&#8217;s 2017 Omnibus Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2018</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837018003336/fix-20180331ex102ce3cf4.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Stock Option Notice under the Company&#8217;s 2017 Omnibus Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2018</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">*10.24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837018003336/fix-20180331ex10323834b.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Form of Dollar-denominated Performance Restricted Stock Unit Agreement under the Company&#8217;s 2017 Omnibus Incentive Plan</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">First Quarter 2018</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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/000155837018005771/fix-20180630ex1010b4b06.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No. 5 to Second Amended and Restated Credit Agreement and Amendment to Other Loan Documents</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Second Quarter 2018</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 10-Q</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="https://www.sec.gov/Archives/edgar/data/1035983/000110465919010746/a19-5185_2ex2d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Purchase Agreement, dated February 21, 2019, by and among the Company, Walker, the Shareholder Sellers and Scott Walker, in his capacity as representative of the Shareholder Sellers</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">2.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">February 26, 2019</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="https://www.sec.gov/Archives/edgar/data/1035983/000155837020001491/ex-10d56.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Amendment No. 6 to Second Amended and Restated Credit Agreement and Amendment to Other Loan Documents</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">10.56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">2019 Form 10-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10.28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="https://www.sec.gov/Archives/edgar/data/1035983/000110465920033252/tm2012107d1_ex2-1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Agreement and Plan of Merger dated as of March 9, 2020 among Comfort Systems USA, Inc., OSC Acquisition Corp., TAS Energy Inc., and Element Partners II, L.P., as Stockholder Representative</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">2.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">March 13, 2020</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">16.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="https://www.sec.gov/Archives/edgar/data/0001035983/000110465921036255/tm219577d1_ex16-1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Letter to Securities and Exchange Commission from Ernst &amp; Young LLP, dated March 15, 2021</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">16.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">March 15, 2021</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Form 8-K</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">21.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex21d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">List of subsidiaries of Comfort Systems USA,&#160;Inc.</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">23.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex23d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Consent of Deloitte&#160;&amp; Touche&#160;LLP</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">23.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex23d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Consent of Ernst&#160;&amp; Young&#160;LLP</span></a></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">31.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex31d1.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:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">31.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex31d2.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:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">32.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex32d1.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:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Furnished Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">32.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="fix-20211231xex32d2.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:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Furnished Herewith</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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">85</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.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;max-width:100%;position:relative;min-height:11.5pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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><td style="vertical-align:bottom;width:9.43%;margin:0pt;padding:0pt;"><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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:56.73%;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:2.14%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="3" style="vertical-align:bottom;width:29.62%;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;">Incorporated&#160;by&#160;Reference</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">to&#160;the&#160;Exhibit&#160;Indicated&#160;Below</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">and&#160;to&#160;the&#160;Filing&#160;with&#160;the</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Commission&#160;Indicated&#160;Below</b></p></td></tr><tr><td style="vertical-align:bottom;width:9.43%;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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:56.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;">Description&#160;of&#160;Exhibits</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:8.13%;border-bottom:1px solid #000000;border-top: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;">Exhibit</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">Number</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:19.42%;border-bottom:1px solid #000000;border-top: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;">Filing&#160;or&#160;File&#160;Number</b></p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.INS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Instance Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.SCH</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Taxonomy Extension Schema Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;white-space:nowrap;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.CAL</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Taxonomy Extension Calculation Linkbase Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;white-space:nowrap;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.DEF</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Taxonomy Extension Definition Linkbase Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;white-space:nowrap;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.LAB</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Taxonomy Extension Label Linkbase Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;white-space:nowrap;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">101.PRE</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inline XBRL Taxonomy Extension Presentation Linkbase Document</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:top;white-space:nowrap;width:19.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Filed Herewith</p></td></tr><tr><td style="vertical-align:top;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">104</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:top;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:19.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></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:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Management contract or compensatory plan.</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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">86</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.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;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_ac382016_e658_4d25_96d5_c8578c5933aa"></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;">SIGNATURES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Pursuant to the requirements of Section&#160;13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</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:50.61%;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.84%;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:bottom;width:44.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:top;width:50.61%;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:49.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><b style="font-weight:bold;">COMFORT SYSTEMS USA,&#160;INC.</b></p></td></tr><tr><td style="vertical-align:top;width:50.61%;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.84%;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:bottom;width:44.53%;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:top;width:50.61%;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 1pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.84%;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;">By:</p></td><td style="vertical-align:bottom;width:44.53%;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 0pt 1pt 0pt;">/s/ <span style="font-variant:small-caps;">BRIAN E. LANE</span></p></td></tr><tr><td style="vertical-align:top;width:50.61%;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 1pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.84%;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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:44.53%;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 0pt 1pt 0pt;">Brian E. Lane</p></td></tr><tr><td style="vertical-align:top;width:50.61%;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 1pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:4.84%;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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:44.53%;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 0pt 1pt 0pt;"><i style="font-style:italic;">President and Chief Executive Officer</i></p></td></tr><tr><td style="vertical-align:top;width:50.61%;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;">Date: February 23, 2022</p></td><td style="vertical-align:bottom;width:4.84%;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:bottom;width:44.53%;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></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:12pt 0pt 12pt 0pt;">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</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:33.34%;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><td style="vertical-align:bottom;white-space:nowrap;width:2.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%;"></div></div></td><td style="vertical-align:bottom;width:39.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%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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%;"></div></div></td><td style="vertical-align:bottom;width:22.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%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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%;"></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.34%;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;"><b style="font-weight:bold;">Signature</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.27;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:39.35%;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;"><b style="font-weight:bold;">Title</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.27;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:22.31%;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;"><b style="font-weight:bold;">Date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.27;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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;padding-left:10pt;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Brian E. Lane</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">President, Chief Executive Officer, and </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Brian E. Lane</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director (Principal Executive Officer)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">William George</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Executive Vice President and Chief Financial </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">William George</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Officer (Principal Financial Officer)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Julie S. Shaeff</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Senior Vice President and Chief Accounting </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Julie S. Shaeff</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Officer (Principal Accounting Officer)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Franklin Myers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Chairman of the Board</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Franklin Myers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Darcy G. Anderson</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Darcy G. Anderson</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Herman E. Bulls</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Herman E. Bulls</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Alan P. Krusi</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Alan P. Krusi</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Pablo G. Mercado</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;white-space:nowrap;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;white-space:nowrap;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Pablo G. Mercado</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;white-space:nowrap;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">William J. Sandbrook</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;white-space:nowrap;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;white-space:nowrap;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">William J. Sandbrook</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;white-space:nowrap;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr style="height:3.4pt;"><td style="vertical-align:middle;width:33.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Constance E. Skidmore</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Constance E. Skidmore</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;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:bottom;white-space:nowrap;width:2.5%;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:bottom;white-space:nowrap;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:bottom;white-space:nowrap;width:22.31%;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:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Vance W. Tang</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Vance W. Tang</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">/s/ <span style="font-variant:small-caps;">Cindy L. Wallis-Lage</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;border-bottom:1px solid transparent;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:middle;width:39.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;">Director</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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;">February 23, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr><tr><td style="vertical-align:middle;width:33.34%;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;padding-left:10pt;text-align:center;text-indent:-10pt;margin:0pt;">Cindy L. Wallis-Lage</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;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:middle;width:39.35%;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:bottom;white-space:nowrap;width:2.06%;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:middle;width:22.31%;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><td style="vertical-align:bottom;white-space:nowrap;width:0.42%;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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;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></div><div style="clear:both;display:table;margin-bottom:27.35pt;min-height:36pt;width:100%;"><div style="display:table-cell;vertical-align:bottom;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">87</p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:10.35%;margin-right:10.35%;margin-top:30pt;page-break-after:avoid;width:79.3%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21.1
<SEQUENCE>2
<FILENAME>fix-20211231xex21d1.htm
<DESCRIPTION>EX-21.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27:44 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.35%;padding-right:10.35%;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;"><b style="font-weight:bold;">EXHIBIT 21.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</font></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;">SUBSIDIARIES OF COMFORT SYSTEMS USA,&#160;INC.</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 of December&#160;31, 2021</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:center;margin:0pt;"><font style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</font></p><div><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%;" align="center"><tr><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:52.85%;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:1.19;margin:0pt;"><b style="font-weight:bold;">ENTITY NAME</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:18.42%;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:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">DOMESTIC<br>JURISDICTION</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:20.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:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">FORMATION<br>DATE</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></th></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ACI Mechanical, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/26/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Air Systems Engineering, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Washington</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/18/1973</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">AirTemp, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Maine</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/15/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Altrax Tool and Equipment Co LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/03/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Amteck Communication Management LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/05/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Amteck Holdco LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/07/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Amteck Sprinkler LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/25/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Amteck, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Kentucky</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/15/1999</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ARC Comfort Systems USA, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/17/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Armani East LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">New York</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/03/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Associated Boiler Systems, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/17/2013</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">BCH Holdings, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/28/2004</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">BCH Leasing, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/25/1990</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">BCH Mechanical, L.L.C.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/19/1976</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">BCM Controls Corporation</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Massachusetts</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/03/1984</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Billone West LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">New York</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/03/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Blue C, LLC dba HVACRedu.net</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Montana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/01/2007</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">California Comfort Systems USA, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">California</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/18/1983</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ColonialWebb Contractors Company</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Virginia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/30/1972</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Arkansas), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Arkansas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/17/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Intermountain), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Utah</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/06/1969</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Kentucky), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Kentucky</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">02/10/1981</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Mid South), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Alabama</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">08/06/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (MidAtlantic), LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Virginia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/01/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Northwest), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Washington</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">02/14/1984</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Ohio), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Ohio</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/10/1979</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (South Central), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/24/2007</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Southeast), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/24/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Southwest), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Arizona</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/23/1977</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Syracuse), Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">New York</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/08/1965</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA (Texas), L.P.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">08/14/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA G.P., Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">08/12/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Comfort Systems USA Strategic Accounts, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">07/28/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services of Alabama, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Alabama</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/28/2012</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services of Georgia, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Georgia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/04/2008</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services of North Carolina, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North Carolina</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/22/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services of Tennessee, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/07/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services of Texas, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/22/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ConServ Building Services, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/05/2005</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Control Concepts Mechanical Services, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Georgia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/17/2008</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Control Concepts, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Georgia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/16/1996</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">CSUSA (10), LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North Carolina</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/21/2011</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Design Mechanical Incorporated</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Colorado</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/25/2003</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><th style="font-weight:normal;text-align:left;vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Dilling Group, Inc.</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/14/1984</p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></th></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Dilling, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/29/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Dyna Ten Corporation</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/26/1980</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Dyna Ten Maintenance Services, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">08/07/2006</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">E Solutions LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/17/2009</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr></table></div></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:10.35%;margin-right:10.35%;margin-top:30pt;page-break-after:always;width:79.3%;border-width:0;"><div style="max-width:100%;padding-left:10.35%;padding-right:10.35%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><div><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%;" align="center"><tr><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:52.85%;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:1.19;margin:0pt;"><b style="font-weight:bold;">ENTITY NAME</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:18.42%;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:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">DOMESTIC<br>JURISDICTION</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:bottom;width:20.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:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">FORMATION<br>DATE</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;line-height:1.19;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></th></tr><tr><th style="font-weight:normal;text-align:left;vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Dilling Group, Inc.</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/14/1984</p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></th></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Eastern Heating &amp; Cooling, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">New York</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/19/1988</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Edwards Electrical and Mechanical, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">02/28/1968</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Environmental Air Systems, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North Carolina</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/07/2011</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Envirotrol, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North Carolina</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/28/2011</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">F. W. Dilling, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/06/1999</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Granite State Holdings Company, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/03/2005</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Granite State Plumbing &amp; Heating, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">New Hampshire</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">07/31/2001</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Hess Mechanical, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Maryland</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/31/2015</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Ivey Mechanical Company, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Mississippi</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/02/2002</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Kodiak Labor Solutions, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/04/2017</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">Mechanical Technical Services, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/24/2007</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><font style="font-size:9.5pt;">MEP Holding Co., Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">09/01/2006</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">MJ Mechanical Services, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Virginia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/12/1997</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">N471VY Trust</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Utah</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/01/2021</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North American Mechanical, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/17/1998</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">OFF, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Indiana</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/22/2002</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Post Oak Insurance Co. Ltd.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Cayman Islands</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/04/2019</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Premier Prefabrication Solutions, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/16/2018</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Quality Air Heating &amp; Cooling, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Michigan</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">09/10/1980</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Riddleberger Brothers, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Virginia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/22/1958</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Royalaire Holdings, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/22/2006</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Royalaire Mechanical Services II, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">09/27/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Royalaire Mechanical Services, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">09/12/2006</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">S.I. Goldman Company, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Florida</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/04/1976</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">S.M. Lawrence Company, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/08/1973</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Seasonair, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Maryland</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">10/28/1966</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">ShoffnerKalthoff MES, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/18/2005</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Starr Electric Company, Incorporated</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">North Carolina</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">07/27/1942</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">TAS Australia Pty Ltd.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Australia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/28/2012</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">TAS Energy Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">04/30/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">TAS Modular Data Limited</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Ireland</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">11/20/2019</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Temp Right Service, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Delaware</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">09/25/1997</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee Electric Company, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Tennessee</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/02/1961</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">TES Controls, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Kentucky</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/10/2015</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Thermal Equipment Service, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Kentucky</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/16/2008</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Trinity Contractors, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Alabama</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/15/2017</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Trumbo Electric, Incorporated</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Virginia</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">06/02/1966</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Walker Electrical Contractors, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/23/2010</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Walker Engineering, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">01/29/2002</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Walker Industrial, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">12/12/2014</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Walker TX Holding Company, LLC</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Texas</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">05/13/2013</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:52.85%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Western States Mechanical, Inc.</font></p></td><td style="vertical-align:top;width:3.48%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><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></td><td style="vertical-align:top;width:18.42%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;padding-left:11pt;text-align:center;text-indent:-11pt;margin:0pt;"><font style="font-size:9.5pt;">Utah</font></p></td><td style="vertical-align:top;width:3.14%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:20.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;text-align:center;margin:0pt;">03/05/1990</p></td><td style="vertical-align:top;width:1.89%;margin:0pt;padding:0pt 3.59pt 0pt 3.59pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:10.35%;margin-right:10.35%;margin-top:30pt;page-break-after:avoid;width:79.3%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>fix-20211231xex23d1.htm
<DESCRIPTION>EX-23.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27:46 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;"><b style="font-weight:bold;">Exhibit&#160;23.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;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;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consent of Independent Registered Public Accounting Firm</b></p><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">We consent to the incorporation by reference in Registration Statement Nos. 333-38011, 333-44354, 333-138377, 333-188302 and 333-221142, all on Form S-8 of our reports dated February 23, 2022, relating to the financial statements of Comfort Systems USA, Inc. and the effectiveness of Comfort Systems USA, Inc.&#39;s internal control over financial reporting appearing in this Annual Report on Form 10-K for the year ended December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;"><font style="margin-bottom:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">/s/ Deloitte &amp; Touche LLP</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">Houston, Texas</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">February 23, 2022</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-23.2
<SEQUENCE>4
<FILENAME>fix-20211231xex23d2.htm
<DESCRIPTION>EX-23.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27:49 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;"><b style="font-weight:bold;">Exhibit&#160;23.2</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-align:right;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;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consent of Independent Registered Public Accounting Firm</b></p><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">We consent to the incorporation by reference in the following Registration Statements:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:36pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(1)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Registration Statement (Form&#160;S-8 No.&#160;333-38011) pertaining to the 1997 Long-Term Incentive Plan, 1997 Non-Employee Director&#8217;s Stock Plan, and 1998 Employee Stock Purchase Plan of Comfort Systems USA,&#160;Inc.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(2)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Registration Statement (Form&#160;S-8 No.&#160;333-44354) pertaining to the 2000 Incentive Plan of Comfort Systems USA,&#160;Inc.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(3)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Registration Statement (Form&#160;S-8 No.&#160;333-138377) pertaining to the 2006 Equity Incentive Plan and 2006 Stock Options/SAR Plan for Non-Employee Directors of Comfort Systems USA,&#160;Inc.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(4)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Registration Statement (Form&#160;S-8 No.&#160;333-188302) pertaining to the Comfort Systems USA,&#160;Inc. 2012 Equity Incentive Plan</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">(5)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Registration Statement (Form&#160;S-8 No.&#160;333-221142) pertaining to the Comfort Systems USA, Inc. 2017 Omnibus Incentive Plan</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">of our report dated February&#160;25, 2021, except for Note 16, as to which the date is February 23, 2022, with respect to the consolidated financial statements of Comfort Systems USA,&#160;Inc., included in this Annual Report (Form&#160;10-K) of Comfort Systems USA, Inc. for the year ended December&#160;31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 5pt 0pt;">/s/ Ernst&#160;&amp; Young,&#160;LLP</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 5pt 0pt;"><font style="margin-bottom:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">Houston, Texas</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 12pt 0pt;">February&#160;23, 2022</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.1
<SEQUENCE>5
<FILENAME>fix-20211231xex31d1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27:52 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;"><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:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></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;">Pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</p><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">I, Brian E. Lane, certify that:</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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">1.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">I have reviewed this annual report on Form&#160;10-K of Comfort Systems USA,&#160;Inc.;</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">2.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">3.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">4.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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:</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">a)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">b)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">c)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">d)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">5.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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):</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">a)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">b)</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;">Date: February&#160;23, 2022</p></td><td style="vertical-align:top;width:50%;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="text-transform:uppercase;"> Brian E. Lane</font></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;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</p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><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><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>6
<FILENAME>fix-20211231xex31d2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27:55 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>Merrill Document Readback</title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:8.82%;padding-right:8.82%;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;"><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:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></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;">Pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</p><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">I, William George, certify that:</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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">1.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">I have reviewed this annual report on Form&#160;10-K of Comfort Systems USA,&#160;Inc.;</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">2.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">3.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">4.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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:</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">a.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">b.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">c.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">d.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">5.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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):</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">a.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><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><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">b.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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.</font></td></tr></table><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><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><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;">Date: February&#160;23, 2022</p></td><td style="vertical-align:top;width:50%;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="text-transform:uppercase;">William George</font></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">William George</p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><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><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:8.82%;margin-right:8.82%;margin-top:30pt;page-break-after:avoid;width:82.35%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>7
<FILENAME>fix-20211231xex32d1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:27: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;"><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:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></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;"><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-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:36pt;margin:0pt;">In connection with the Annual Report of Comfort Systems USA,&#160;Inc. (the &#8220;Company&#8221;) on Form&#160;10-K for the fiscal year ended December&#160;31, 2021, 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;text-indent:36pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">1.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">2.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;">Date: February&#160;23, 2022</p></td><td style="vertical-align:top;width:50%;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="text-transform:uppercase;">Brian E. Lane</font></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;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</p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><i style="font-style:italic;">President and Chief Executive Officer</i></p></td></tr></table></div><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><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:12pt;margin-top:0pt;">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></td></tr></table></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>8
<FILENAME>fix-20211231xex32d2.htm
<DESCRIPTION>EX-32.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.11.0.85--><!--Created on: 2/23/2022 09:28:02 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;"><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:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></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;"><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-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;text-indent:36pt;margin:0pt;">In connection with the Annual Report of Comfort Systems USA,&#160;Inc. (the &#8220;Company&#8221;) on Form&#160;10-K for the fiscal year ended December&#160;31, 2021, 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;text-indent:36pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">1.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">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</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;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';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;">2.</td><td style="padding:0pt;"><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;line-height:1.19;text-align:left;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;">Date: February&#160;23, 2022</p></td><td style="vertical-align:top;width:50%;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="text-transform:uppercase;">William George</font></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;">William George</p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;padding-left:10pt;text-indent:-10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin:0pt;"><i style="font-style:italic;">Executive Vice President and Chief Financial Officer</i></p></td></tr></table></div><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><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.19;margin-bottom:0pt;margin-top:0pt;">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></td></tr></table></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>GRAPHIC
<SEQUENCE>9
<FILENAME>fix-20211231x10k002.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 fix-20211231x10k002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" )2 KT# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W[ ]*,#TI
M:* $P/2C ]!2T4 )@>@]*,#TI:* $P/2C ]*6B@!,#TI<#THHH 3 ]!Z48'H
M*6B@!,#THP/2EHH 3 ]*,#TI:* $P/048'H/2EHH 3 ]*,#TI:* $P/2C ]*
M6B@!,#THP/0>E+10 F!Z#THP/2EHH ,#TI,#TI:* $P/2C ]*6B@!,#T'I1@
M>@I:* # ]*3 ]*6B@!,#THP/2EHH 3 ]!1@>@]*6B@!,#THP/2EHH 3 ]*7
M]*** # ]*3 ]!Z4M% "8'H*,#TI:* $P/04N!Z444 )@>E&!Z"EHH 3 ]!Z4
M8'I2T4 )@>E&!Z4M% "8'I1@>E+10 F!Z#THP/0>E+10 F!Z48'I2T4 )@>E
M&!Z"EHH 3 ]*,#T'I2T4 )@>@HP/2EHH ,#TI,#TI:* $P/2C ]!2T4 )@>@
M]*,#TI:* $P/2C ]*6B@!,#THP/2EHH 3 ]!Z48'H*6B@!,#THP/2EHH 3 ]
M*7 ]*** $P/048'H/2EHH 3 ]!2X'I110 F!Z4N,444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 9'BK57T/PIJFJ1+F2UMGD4>X'%<-
MHW@?5+_3-)\00^+M535YG2YN'>8O Z-]Y!%]T<' KTF]LX-0LI[.ZC$D$Z&.
M1#W!&#7G\/PPU)&L["7QKJ;^'K.X6>#3TB6.0;#N13.#N(!QV[<8." "LEE<
M^/?'?B*UOM6U&ST[1Y(X(+>QN#"69EW%V(Y/TKC_ !#JFNQ>$M8\-'6;M[C2
M];@M(+]9"DKQ2*Q568'DC'/X5Z7K/@2\F\0S:[X;\1W&A7UTH6[VVR7$<V!@
M$H_ ;W]JJ?\ "K+5/#,.E)J<[71U%-1N[Z=-\ES*#SD9&!V'7'N<F@#RGQAX
MMUG5/"FB0VVIW4%SIEN3J+P3,K&3S!&%8@Y/3/-:^M7<4_C[QA!J$_BV4P/"
M+./1WE:.,F+)W!>!DX_6NQN_@W9SP^(4AU0PMK%RD^[[/GR0K;MN-WS9.3GC
MK76Z'X7&B^)/$&L?;#,=8DA<Q>7M\KRT*XSD[LYST% 'E.KW^MW6A>%?"VKZ
MX^D:E+;S7EU<R77DNJJC"%7;(R2Q&1GM4^O>*Y]8^#7A_4/MEXD_VV&UO&LI
M2)6*MM< J<DD<^Y->@O\/=,O_%NI:]K<=KJOVJ..*"WN;566V5<YQN)R3QS@
M5D-\*(8UN+>SU-;;3WU6'4H;5+7Y82A!*+AAP<>G'I0!R_@^Z%WX\C7PM>>(
MGL+2"5=8CUF=B8RP/E!58Y!RI_*G0R^)-1^#@FTV:_NIDU.1KL0S'[0]NKG<
MJ,>0< 8Q^%>@7_@A)?'%OXITZ^-A=&$V]]$(=ZWD?&-W(PPQUYZ+Z5F_\*R5
M?"5OI$.M3P7MI>M>VM_%" 8W+9P4)(8<],\_I0!QFF>++C1_ _B:32]6O998
M9H4M[75%;[38M)@'>6^\,G(^E:'B+0[[P#X5A\76'B+5;F^M6A:ZBN[DR0W*
MR.JLH0\+RV>/2NFT[X:0M;ZX?$FJS:W>ZRJQW%R85M]J* %"*N0".N?IQUS5
MA^&.H7+65IK_ (OO=7T6Q=9(=/>V2/<5^YYD@YD ]#U]J .3L_%VJ:-\5M=N
M+NXFDT":ZCLW#R$K;.\8*,!_"">./6NU^$=]<7GPVM;JZN);F7SKC,DKEV($
MKXY/M5E_AW9W+>*5O+GSX=?=7*>5@P%5V@@YY((SVK1\$>%5\&>%+;0A>&\6
M!I&\XQ[-VYRW3)]<=: .&\.Z#>?$.PU'7M0\0ZM:SO=S0VD5E<F..W5&PN5'
M#<\\URNH>*;[6]$\(/J]WJQ/VFXM;QM)9UEN/+X# )U)X_6O0[GX;:C;W5\/
M#GB^\T73K]VDN+-+9)0&;[QC<X,>?;G/-7[?X=6&GR^&5TZX>"VT(N5C=-[3
MEARS-D8).2>._  H D^'L-@FDW,VGG7_ "WFPRZVS^8" /NA^0M>>>([^XC\
M>:MJ6MVGB6'0K6XAACNK2[:"&,8&6*?Q D]17N5>>:K\+3J>KWK+XANX-#U"
M=+B^TI8E82NOI(>5!XR /7VP ;OC32+S6O"[_P!DWL]M?P8N+62*0KN9>0K8
MZ@CC!]:X;0-5UCQM'JOBFZ>YL;33K"6VM[5)2H><(?,D(!YP>!GI7KGE@0^6
MO"A=H]JYCP]X,&@^%M0T07YG^V23OYWE;=GFY[;CG&?7F@#RCP+)I>H6&C2W
MTWCR74)"I>6-YC;,V[KNZ;?6M+XFZ[=7?BS4(]/UX:>?#U@EPL/VKROM,YD5
MBFW(W_NU;CGG'K74Z'X \7Z!96>GV?Q"9=/M<*EO_8T)^3.2NXDGGGFK^E?#
M'18)-2N=;MK+6KZ_NGN'N+FR3*;@,*H.[ &/7O0!R/Q UZ'5+CP;>"YU==-O
MXWDEBTF1Q*V5S@!>I!_E5WX4W4NH>(-6N]'O-5N?"ODK&C:I-YDHN@06 R20
M I_45LZ)\,SH\^A-_;+31:-+,T$9M\$H^<(3N/3/7O6KI'@M-!\9:GK>FWQA
MLM20-<Z=Y7R></\ EHK9X)[C!ZGVP 86O)<^*_B1_P (R^J7ECIME9"ZE2SE
M,4DTC' ^<<@ 'I6;XKTG5O"'@&ZA_P"$@O;N(ZI ;1WD(EAB:091GSENIZ]J
MZWQ+X+EU?5[;6]'UF;1=:@C,/VJ.%9EDB/57C;AN>A[?EBE#\-HY?"VJ:5JV
MMW^H7FIS?:)[YCL*2C[K1H.$ P.!Z=A@  J^,;RZ@\<> (8;F:.*>6Y$J)(0
MLF(E(W =<'UKS7P[XOU71;?Q4;S4;J<WL5P-/625F*RK)Y>%R>/O#@>E>HZ3
M\/M1CU^PU?Q%XIN-;ETV-TL8S:);K$77:Q.TG><8Z^G>L_\ X4]:.NE";5&<
MV&I27^?L^/,#,&\L_-P 1UYSZ4 <!X;O]:M=&TZUNM7O9YXO&8M))&N')=!%
MRIR?NYYQTKT+Q/>W<7Q3AMH[J=(#X=N9/+20A=X8X;'3(]:E;X4POHNJ61UB
M9+FZU9]6M;J*+:;64XP,;CN P?3.>U7-*\ 7D.IWNK:[XCFUC5)[-[**9K5(
M$AB;KA%X)SSF@"S\+;F>[^&FAW%S/+/,\)+R2N69CO;J3R:\U\8^*KAO&FJ:
MY9ZZ((?#UU:P)8"[VBZ7<?._=Y^;!8<X/ -=EH7P_P#%WAZQM-/LOB$RV%KP
MEN=&A/RYR1N+%N<GO5K3/A/X>MM!N+'4K2SU.^N&E:34)K11+ER3D$Y(QGCG
MM0!C?%?38Y= C\36&KZK!+,]O&@MKUXXC&QZ[1W(/6JM]X?ETOQQH_AZQUC5
MWM[[3[V1C/?.[;R@ .<]L CTR:ZNY\ RW?P^L?"UQK!=K5HR+O[/RP1L@;=W
MIQUK4O/"XN_&FD^(OMA4Z?;RP>1Y>?,WC&=V>,?0T >8#Q'J>N^ _#GA:*^N
M(M:O=2^P74Z2$2JD+;I'R.<X /N,U0DN;*;QGXGAU:?QE,MO>A+==(DF:.--
MO0[3P:](TGX;6>E?$.^\6)>,_P!H5]EF8L+$[8W.#GJ0,=!UJFWP_P#$=IKN
MK:CH?C=M,CU*X\^2#^RXIL'&!\SG_"@#L-#AA'ARRA@:]\DVZA3=L?/P1_&3
MSNKRH^#81\3)=!.O>(OL*:=]IQ_:DF[?G'7TKUS2[:\M-,@@U"_-_=HN)+DP
MK%YA]=J\#\*RU\, >.7\2_:^6LQ:_9_+]\[MV?TQ0!YYX8T.^\?^%I_%=_XB
MU:UO;B2;[+':7)CBMU1F504'#<COUK1MTF\<?"V+5M1U#4+>_P!/@N?WEE<M
M )70$;F"]1\H./<U<F^&%_:O?6OA[Q?>Z/HM\[//IZ6R2[2Q.[RW.#&".P_6
MNMMO#5EI_A)O#NGY@M?LK6Z,?F(W*1N/3)YS0!X['_Q*/AEH]Y_;^I+J7B(Q
M6\DUUJ#%(EWY=U)/R$ =<UI:9X@N6^$'B_3?[7>ZU#1#-"MY%/N9XSEHY X/
M?YAG/\-=3:_"VSW>'XM4NXM2L='M7@6TFM!LE=C]]LL1QZ8/UIM_\*;%[W6G
MTBZATJRU;3OL4UG!:#8K@Y$HPP&0.,8[F@#K_#<CR^%](DD=G=[*%F9CDDE!
MDDUYE\4KV.'Q[H5O>W.N)IS6<[RQ:1(XD)&,'"]AW/I75>'_  GXMT:YL5N?
M'37NFVJA#9G288]Z!<!=X.X8XY]JUKWPNM[XVTWQ&;O;]BMY8/L_EY#[^^[/
M&/3% 'D$6HZC_P *U\::GI6HZJV@E8?[-GO+@FX#AP),-G('05T'@9-&GUK3
MGA/CG[6$#[M0:;[,3MYSNX(]*V[KX6(UCXETVQU<VFEZWMD%K]FWBVE#!BRG
M<,@XZ8].>.;^C>%O&&FWEH;OQZU[8P8#6G]D0Q^8H& N\'([<T <AKOA&.'X
MHZ#H\>N^(%L]2AN9IU&I2 AD&5V^@K:\ R7$4/C.V>]NIUM+QHH6GF9V51$,
M<FNIU#PN+_QKHWB/[64.FPS1?9_+SYGF#&=V>,?0U@:K\.=2DU35+K0/%ESH
MT&K<WML+1)P[$;2RLQ!0X].?>@#S,ZK/-X0^'QU'4-=DAN1=_:?[/FD-Q+B0
MXZ')Q_*M+2]0NY?#?C>_T+4-9?P]'IC""74+@M.ERJG=M.=RX_#M7I-O\/;.
MQN/#!L;N2.VT!)%2.1 [3;AR6;(P<Y/ []JJ7GPU1[SQ&VGZJ;.QUZU:*XL_
M(WHDI&/-4[A@]<COGKTH \VMO&&K_P#")Z%HFI7EQ%JT&H6,HE$K!KFVE(8$
MG^+KM/TKU[3M UFT\47.ISZU)/9SL1]D8G"(H;9CMU=L].B\G%8NM_"JRUB/
MPP_VXPW>A"!//$.?M"1[?E(W#&2N>^,UZ#0 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %<'XN\4RZ9X@@$$MXMOIH2>\6"V
MDDC='.&$C*I"A4R_)'2N\JDND6"B^Q;J?M^?M.23YGR[><GTXXH Y"Y\7ZV=
M:GM+.#3S NIC3HVE#DY,2R!S@]!NQCOZBH?^$^U.;39;Z"SM FGV*WU^LF[+
MJ7<%8CG@XC8Y.>2!ZUU5KX6T:S6,06>WRYEG4F5V/F*@0,2223M4#GT]:BE\
M&>'YTMTDT\%(!M5/-<*R[M^UP&PZ[N=K9'7CF@#G&\>:C;27%W<VMJ=.CFNH
M52/<)28DW DDXYZ8Q6SX=UW5;[6[S3=3BLP8;*VNT>V##(E,@P0Q/3R_\]*T
M9/#>F&)Q%:QK(9)9E+[G422##,5SR#Z=*H>%O",?ANXO+EKHW-Q<I'$6PX58
MTW;5 =W/5V[],  8H H:>]UJ%J^NW&N263I>E/*DD MU02;-A4XY8=#UR15.
M[\>:E:VTM_\ 9+5K*9[N*T3YA(&@9ERYSC#;&X &,CK74MX8T=M3_M VK>=Y
M@F*B9Q$9!T<Q[MA;W(SGFHY/"&A2W5U<O8!I+H.) 97V_/C>57.%+8Y*@$]^
MM ',Q>,=?2^,-S!IIBCO+6UD:-7!/VA5*D9;C:6&?7VJAI/BK7K31YI9)+>[
MGACN;^Z:</@Q),R>7&,\'"G'4#CBN\/AS26D>0V8W/+#,QWMR\0 C/7MM'UQ
MSFJ]QX/T&Y@@AFL 8H"Q51*Z@AFWLK8/S*6.=K9'M0!RMQXFU_5)4FLY;2TL
MXM<BL=NQS)(ORD[CNQ@[L$8[=:VO$W]I2ZQ;16CW<UJD),UMIUTD5RK$G;(0
MY *<8ZCGUJT;/PK<65QMGM/L[7BW4KQ7>W;/QAMRM\I^4< CI2ZZGAR[M(]3
MU"Y0(D;"*XM[QH6D7J55HV4MT^[D\T 9&D^++V2UT^W9H[R:[@A:VG,31F7)
M*RETS\I7 S[FJ&J>*/$$NCZ@H-OI]["]NPC:WF22-6G"$9;Y9!T^=#CJ.XK6
MF&@Z=>:#JDDL$%B8!;:;;" +L,@SG.>FW QBGZ1I_A#5M*N&L0LEO<1*94>Z
M<M$@;<H +9B (SA<#B@#,G\>ZG'-J+Q:8\MO:K<KD6<X56B0D,TI'EE201@'
M(XYI(_&FO)<R+/;:<8X!9RRB,/N*7+$!5)/WEVMR>#QP*W_^$?\ #-Y'<:@D
M,=S%)'()&2Y=XR"NUR &VABO!8?-[UF6-YX6U*6#.F7<":E'"L,US&Z1S+"&
M>, Y[ L??OF@#1\/Z]J.H:K=6>H0Q6SQKN6 P2QR*-Q'WF^608 ^9#Q65>ZM
MJ">&O%<Z74@GM=1,4#9YC7$6 /;YC^=;UC8>']&DEO+:6&+?'N+R7194C+?P
MAF(123_#@9J"YTOPM<ZC%J,\EN9KIU=<7C+'<,O"L8PVR0C@9(/0>@H YZ\O
MM6MKZ>_GO;P6JW<:PWEK*DMK&F\(T<L6X-NSD$@'!.>,'$\'BJ5O'I0S7?\
M9TLQL$1K:00"15SN$NW823N7&[/%:]_IOA=+V[N[C8UQ /MEQ;)=/MRN#YC0
M!MI/0Y*YS@]<4MC_ ,(]?:%/;V]N_P!ALI!,Z?."'XEW YW$\Y_2@"WXNNI[
M+PEJ=S;2M%/' 61UZJ?:L"#QAJ:ZL$N(;3^SAJ+:?E0WFY$32!\YQ_#C&.]6
MEUK1I= N].U);YQ&B^;!=1LLTJRL=FT9R<D%1SVJ)]5\*VUO!?"UG+?:)+XH
MB.7A=%*22.N> H8@]N>E &OX8U+5-8TZ#4KR*U2UO;>.YMEA+;XU<;@KYX)P
M1R,<YXH\9W-Y9>"]9NM/F$-U#:221R$$[2!G(]\=/>LNS/A32M82ULHITED,
M2B9))&BCW9:.(,6PBGJ$&%Z<=*U)6TQ(Y_#VI7#3"6U>:8SL0IB9MI!8GCKC
MK0!R^G>)M;LM6N3>R07-B=12T8;6WJ3#ORG. ,@\'/7K6IX1\6ZAX@NE%SI\
MD=K<6HN8I19SQ+%DC]VSR +(2&!#)P<'VK0@L/"\%HMU'-;&W%TLPG:[+ S*
MNT'<6.3CC&:A\/1^%[>.UU'3#';G4(L6RS3MNV$YV1H['8N<?*@ Z<<"@#%O
M;W5;36);Z>]NUM!J$:0W5M*DMHL9<)Y4L60P8YVY ."0>,4:3XBNF\=W"7ES
M-'I]T[QV&_)2YP0N$0#Y=K!\L>HYZ<UTAT#P_=:FE]L62:23SU1;E_*>1<?/
MY0;8S X.[;D'!ZTH\'Z$M\MX+(B993-'^_DVQ.3DLB[MJ$G.=H&<G.<T <IX
M0EUW48M&O0-8.^0O=SW=S&UO)%M881 Q;.[;C*C&#]#I>([C5K'Q!_:,T=V-
M#MTB#-!>"/+,^"=@!W@9 ()''3-=986%MIEE%9V<7E6\0PB9)P/J>:J7?AW2
MK_4$OKFU+SJ5/^M<(Y4Y4L@.UR#TW X[4 <*WB/5;>)=86\ED>\NM1MS:L<Q
MQ+ 95C*KV(\H$GON-=#X5NKQ=3N["XO)KN,6EO=*\S;BK2!MP!],KD#MFMF/
MPYI,6I3Z@EF/M$X8/EV*?, &(0G:I; R0 3SG.34FEZ)I^C)(EA 8Q*07+2,
MY.!@#+$G ' '0=J ."M?&6N6^GXC%M<&&&[NY9+G<698[ET"C!'\( !]JNZA
MXIU:YN(KBV\F#3K?5H;251GS9/E5FYZ;3NQC&>^>U=0OA71$CDC6Q4+)%)"P
MWMRCN7<=>[$FDE\*:)-J,=])99G1TD7$KA-Z#"N4!VE@.-Q&<<9Q0!S.F>.=
M5OK.6];3L6BP"[#O9SPJ(\\H&D #OMY!7@GCWKK]#OIM3TBWOYDC3[2OFQHA
MSMC;E03D@MC&<<9SBJD'A'0[:3S([(Y#JZAII&"[6W *"V%4-SM'&<'&16I:
MV<%DDB6\?EH\C2LH)(W,<L0#TR<G [D^M $]%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %5-5CGETB]CM8XY;AX'6*.7[C,5. WMFK=% 'DUMX0UZ>
M]DEN=.E\B5].)2=K92!#*YD&V+"X 8$=21WSP+EQX5U:".Z*Z,+Z.5+VWBMA
M+$HB\T@H_P S !3WQ\PQP#7IM% ''ZGHM]+X>\.1)8_:)["2W,T2LF5"IM;!
M8@''U^E<X/!&L#1(;:"U2WG.CRV\Q61!NE\^-PA/(.55QD@@9YKU.B@#D_#.
MCWEGIFK&>"[BDO'+)'=R0;S\F,[80$7/L3TYK'T_P;?Z?:Z!(5N;EH[+[-<V
MMQ=EUM9&CV^;&"Q QRI"YX;CISZ)10!Y;#X<UMX8EN="N@EI8V]LOEW4'F.\
M<Q;>@+%" "#A\ C@^E69/#VLF&Q(TAS<GS 7#6OEA3-O G0\!B.28<\Y[5Z3
M10!Y;+X-UI]3O-\%W(1)>31SB:W2&02HP5/N^:Q^8 JQ"C;D$X /3^&M.U/0
M]-U5Y;$R7#,LD$"RH#*1$HQG.!\P(R:ZNB@#SQ-(UB^MYM3NM(OAK0NK:ZD$
M\EN$E2)LB"$+*P4#+8W$9+$D\\1#P_KMI]IU&+2S/<:A#=QM:^=&#;M*P*%R
M6VE1_%M+$=@U>D44 >?0>%=4LKA-+2W,UH\]I<&^WJ%00QJC*5)W9.P$8!')
MR1BK'C3P[J>L76H-9VHF2;2A;+^\5=TGG!MO)'\()STKN:* //KGPW?VFMR7
MT&D"[L8[UI5LHWB7S%:(+N 8A<@CH2.M8D/@C78H=/BFM;HJ;&W@*6T]N%MG
MC=V;<\BLP'S @QY)P<CH:]<HH Y;0])O+/7KB_FLO+ANPVR/>I-K@_[V/GZG
M;GD<]L=3110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6)XD\6:1X4@MI=5N'C^TRB*)(XVD=B2 3
MM SM7.2?PY) .W7#?$SP_J&NZ;8?V78B:\@N4:.X2<Q2VWSH2R]B, YSTX/:
M@#>C\7Z#+JB::FH*URZ;TQ&^QOEW8$F-I;;SMSG':H$\<:#)I?\ :0GNQ:%D
M5)&T^X7SBV=OE@IF3H3\H.!R:Q;_ $/Q+J=WIZ7,=L6M8&22]$W^NW1;6&S'
MR,7YW =/RK'M_!OB&VCMI8+<I;V,T#V^FS7QEY6)XY&5V^Z#O7"]/EZ#- 'I
MUI=P7]I%=VLJRP3*'1UZ,#4U8_AG2I='\+V.FS./.ABVNR=B22<?3-6M.:3-
MW%),\OE3[%9\9QL4]@.Y- %ZBBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ JCI_P#Q\ZC_ -?/_M-*O51T_P#X^=1_Z^?_ &FE %ZBBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH ***YOQ;XRM?"8T]);.ZO;F^G$4-
MO;*"Q&Y0QY('&X8'4D@>I !TE%<W/XUL+34DM;RSU&UB>-I%NY[?9$=J;V')
MW9"]3MP#QG/%5(_B)ILEHS_V?J*W?F1)'8LD?G2B1-Z,OS[=I4,>6!&Q@1D4
M =?5'3_^/G4?^OG_ -II3],U&WU?3+?4+1BT$Z!TW#!^A]QTIFG_ /'SJ/\
MU\_^TTH O4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110!2U+5[#1XHY-0ND@65_+0MGY
MFP3@8]@3^%1Z;KVEZO-+%87B3R1*&=0""H.0#R/8_E7/^,[^]@U/14T:Q;4M
M3@FDG^RQNJE4,,B;V+$ +N8#DC/05/X=CUB;7);W5-/NK8_8(H#)<& &60/(
MQPL4CX&&'7% '54444 %<?\ $/PM>^+-'MK.S^Q?+.CO]I0[E =3N1QRI !S
MCJ"17844 </?>"]5U-K:UO-5B:T@MFM_M*(1<R*T6QE8]&!)W?6J,?P_U4%;
M][ZS.IQ26PB 5O)*0Q/&-W?)\USQ[5Z-10!F:#I T7P]::69#)Y$6QG'&2>3
MC\2:=I42PR:A&F[:MSQN8L?]6G<\UHU1T_\ X^=1_P"OG_VFE %ZBBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH *PM6UF878TG2%6;4G&79N4MU/\3_T'>DUC6+EKL:-HH234
MY%S)*PS'9H?^6C^I_NKU)] "1>TC1[;1K4Q0%Y)'.^:>0YDF<]68^OZ#M0 :
M1I$.DP.%9IKF9M]Q<R<O,WJ3Z#H!T X%:%%% !1110 4444 %%%% !5'3_\
MCYU'_KY_]II5ZJ.G_P#'SJ/_ %\_^TTH O4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8.L:O<->
M#1M'"OJ3J&DD/*6J'^-O<]AW^E&LZQ<_:ETC1@DFIR#+2.,I:I_??U]E[GVJ
M[HVC6^BV9AA9Y99&,D]Q*<R3R'J['N?T P!@"@!=(TBWT>S,,)9Y';?-,YR\
MKGJS'UK0HHH **** "BBB@ KFO%OC*U\)#3TEL[J]N;Z<10V]LH+$;E#'D@<
M;A@=22!TR1TM<?\ $/PM?>+-(MK*S-EA9T>3[2AW* ZG<CCE2 #G'4'% %Z7
MQC:6^J06=QI^I01SC$=U- $B+;-^WDAL@ Y^7 /&<U5C\>6[Z-;ZF=&U1([M
MD6SB/D&2YW M\H$I PH).\KQZUF?\(/K$^NQW6H:C;7]K;V?V2V$^_=%F/:T
MF!PSL>ISTJK;_#B^MF%W;3:=:W44L+PVUO&RVWR1NC,PZ[F$AR?]D=: .^TS
M4;?5M,M]0M6)@G0.I88(]C[CI4>G$&XU$@Y_TG_VFE1Z#I"Z-X?M-++B401;
M&8CAB>3QZ<FG:7%'#)J$<4:QHMSPJC '[M.U &C1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6+K&K31W$
M>E:6JRZI.N[GE;>/IYC^WH/XCP.A(?JVK2PS)IVG(LVI3#*@_=A7^^_MZ#O4
M^D:3%I4#@.TUS,WF7%P_WY7]3[#H!T H -(TB'2+4QHS2S2'?/._WY7[D_X=
MJT*** "BBB@ HHHH **** "BBB@ HHHH *HZ?_Q\ZC_U\_\ M-*O51T__CYU
M'_KY_P#::4 7J*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ K(U?5Y;>5-.TV-;C5)QF-&^Y$O_/20]E'IU)X%&K:
MM);S1Z=I\8GU.==R(?NQ+T\Q_0?S/%3:1I,>EPN3(T]W,=]Q</\ >D;^@'8=
MJ #2=(BTJ%_WC3W4QWW%S)]Z5O7V'H.@%:-%% !11T&35";5[2*[DLD9I[V.
M/S3;Q#+8_D,]LD4 7Z1F"@EB !W-9J3ZI=BSECMX[2)B3<1W'S2*.P&TXS^)
MIO\ 845Q \6HSS7P:3S )6VA?0 +CB@"IK_BBTTNTO(K>07&I1H!':Q_,[.Q
M 08]R15?PA=W\22Z1K$DKWT*K,KS$;GC?UP3T.1U["MC4=$TW5H8X;VU65(Y
M!*HR5PX& <@@YP:AL/#6D:9>_;+2TV7.PQ^89'8[202/F)[@4 :U%%% !117
M'^//&DWA"/2UM[!+F:_N1$&FF$42 ,N07/1B&XSQP2>F" =A17(:IXVFT34+
M=-3T@V]E.C,LOVI'E)6,R-B-01M !&=W7MCFJ4?Q%G:/[.VC1KJKR0"&V^V$
MQLDL;2*QDV?*0$D!&T\J.3G- '>51T__ (^=1_Z^?_::4W1M7AUC0[75(U,4
M4\>\JY^[ZC/L0>:32IHKB34)89%DC:YX92"#^[3N* -&BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K%U369$NAIFEHD^
MIN,D-]R!?[[X_0=3^M,U+5I[B[;2-%*/>@9N+AAF.S4]V]7/9?Q.!2Z;'I.@
M20Z<MT)+Z[)D9G.Z6<]W;';CZ#I0!;TC2(M*AD/F/<7<[;[FZD WS/ZG'0#H
M%' %:/2LB.]U:_M%DM;#[ _FX(U#!)C_ +P6-CR?0D5*VD+.UV+VZFNX+G ^
MSR8"( <X  'ZYH EEU6SBNUM#,&N70NL: DL!]*KK<ZM>16TMO:1VBLY\Y;L
MDN$[$!>,GW(Q6A!;06L2101+&B*%4*.@':I: ,J708+V&Y@U2:74;>=PQ@N
MOEJ!T4!0,CV.<UIQQI#$D42*D:*%5%& H'0 =A3J* "BBB@ HHHH **** "N
M:\:>%IO%FEQ6":B;6$2HTT9B61)5#JV"#W&WC]:Z6B@#B(OAS$FJO<R:G)/;
M-9"P6":(,8X-FPJCY^4GJ3BD3X<JL/FG5Y6U%)(6BN_)7Y%BC,:KLS@\.^3Z
MM[5W%% %'1],AT72+73K<LT5N@0,W4^I_.C3_P#CYU'_ *^?_::5>JCI_P#Q
M\ZC_ -?/_M-* +U%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%(S*
MBEF8*!U).* %HK#\0>);/1K"X*S1R7P3]S;@Y9V/"\#G&?TK,\+^)-2OK2.S
MN[&XN;^&7R[J8HL $9Y24HQ4X93_  CJK#M0!U](S*BEG8*H&22< 5ER6VLW
MEO/%)>Q:>S2#RI+-1(ZI[F1=N3_N\>],O;72K R:EJ,SL?*$3M<3,4(QCB/.
MP$X_A49H L-K=CYMM'%*;C[22(W@0R)QU)8?*/Q-<V^LZWXJ6\L=#B73X8Y#
M$^I2,'! X/E@=_?H*N1VEWXD1%ECETW0UZ6JC9+=C_;QRB?[(Y/<@9!Z2&&*
MVA2&"-(XD&U408"CT H R+#PQ:6$4L"37#VTL>QK=G^4DXW,3]XL2"22>]:M
MK:V]E;);VL*0PQC"H@P *FHH **** "BBB@ HHHH **** "BJFI:G::3:?:;
MR0HFX*H"EF9CT  Y)]A46F:S9ZL)?LS2"2(XDBEC:-TSTRK $4 :%%%% !11
M10 4444 %4=/_P"/G4?^OG_VFE7JHZ?_ ,?.H_\ 7S_[32@"]1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 452FU?3K>&2:2]@$<;!7(<':3T!QWIAUFU^U26T:SRRQP^<0D1((QG /0D
M^E &A166FJ7<\5M+#I%SME8AQ*5C:(>I!/\ *E+ZU(EXJQ64+!@+9V=GW#/)
M88&..@!H TZ*SA::D]S'))J2K$(]KQ10 9;'W@Q)_+%1#04>UB@NM1U.Y,<I
ME$ANC$Y/H3%LROL: -.26.&-I)75(U&69C@ >YJE_;FF?:;>V6]A>:X4M$L9
MW[QZC&>/>E&AZ4)[F?\ L^V,MU@3NT8)E Y ;/6KL<:11K'&BHBC"JHP /I0
M!F?VVTUF;BSTO4;@B7RO+:'R6Z9WXD*_+[]?:I'EU:26=(K:UAC\O,,TDA<E
M_P#:0 8'T:M&B@#-2SU)_L;SZF%:(DSI#" DW/'7)  ]#3?[ LY()8;II[N.
M63S"MQ*6P>P'M[5J4A( ))P!U)H R=4\-V&JM;/(9K>6W??');/Y;9Q@9(ZX
M%-T[PW;:;JLFI+=WUQ<R0"!FN)RXV!MP&/8Y_,^M<AX\\0^&5U+2GU.W@U6S
MMFF\Z/R!/&C% %+$@J.>YZ52\&V5GK_B#5KC21;Z5H\EG:!X='01+,P>XX:0
M*/F (SL[%>>* .ZOO$*K=OIVE0'4-17AT0XC@]#(_1?IR?:DLM!>2Z74-9F6
M]O1RB!<0P?[BGO[G)K3L=/M-,M$M;&WCMX$Z)&,#/<^Y]ZLD@#).!0 45%)=
M016[W#S((4!+2;N !UYK(/B_13((XKIYW)P!#"[?J!B@#<HJAJ-_/9QQFWT^
M>\:0GY8B!M^I)XJ+3[W5KFY(N])%G;[>&:X5V)^BT :E%8]Y;:_/=2?9=2L[
M6V_@S:F5_P 3N JU:65S%8R07>H2W,KY_?!%C*Y'8#IC\: +U5[R_L].A\Z]
MNX+:+IOGD"+^9K(/@[29!_I3:A=^HN-0G=3_ ,!W[?TK9>TMY4C22".18R"@
M= =I]1GI0!GV7B?1-3NUMK#4H+N1LX^SGS%X]67('YT7VM36ETUO!HNI7C*
M2\"QA.?]IW7/X5K  # & ** *.GW=[=V\DESIS63@X1))5<GCJ=O _,UG^5X
MJG/S7>EVR^D<+NP_$MC]*WJ* .=\2Z%?ZMIMA]EO=E_93+,K_<$AVE6&1G;D
M,>>QIV@:5J%O>SZAJ;1B>2%(%C20R8123EG(&YB6/85T%% !1110 5Q'Q(\4
M:OX7LM.FTV*!()KE4NKVXC>2.W7<H 8+R V2-W;! Y(QV]87BCPK:^*K6""Z
MNKN 0RJ_^CR;0X#*Q5AT/W1].HH QV\:WJ>)HM/DT^)+#^S9+PW8DW+,RJ"?
M+/=.>I'-95GX^U6ZTRS43:?_ &O>2Q)]G>PGA%J&C>0E@[@R A" RX&0>M=B
M?#&F?:;29$DC-I9M90JDA4+$P (]<X YS6<? &E/&YDN;^2Z9XV6\>?,R>6"
MJ@-CIAF'3G<: -7P]JYUKPY9ZH\7EM-%O9%R<$9!QWZBI-*E6:34)$#@&YZ.
MA4_ZM.QP15C3["WTO3X+&U39! @1![5%I_\ Q\ZC_P!?/_M-* +U%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%9UUX@T:Q.+O5K& ^DEPBG\B:I-XPT;.
M(9I[D]OL]K)(#^(7'ZT ;U%8/_"1W$O_ !ZZ!JDG^TZ)&OZMG]*3[?XEG/[K
M1K6W']Z>ZW?HHH WZ*P/LWBB?_6:CI]K_P!<8&DQ_P!]&J5W;"W16U'Q7?$.
M_EA;557+>F%5C0!U9(49) 'O5:XU.PM%W7%[;Q#U>0"N:?P_:2RW4(T[4;N:
M #9)>7CK%*>.F&Q^E6K3PK;17-M<#3]+M@L?[Z..T5G9\'I(>0!Q^5 $[^-?
M#:,535[>=AU6W)F;\D!-4I/B#I DGBM[75KF6!=\D<>GRJRCUPX6M:/P_:?9
M8[>Y>>[6.3S5,TG1OHN!CVK1CMX8I'>.&-'<Y=E4 L?<]Z /*OB!XQD_LK1[
MFZ\+W\-D]Z,'4WAAB=FAE5%?$A*C<0QW 8"YKGO!$VMVWB4V/AV[\,SS/9[W
M9]2:Y!^9-V?+4?-D$@= &/)Q7N-[I]EJ4 @O[.WNH@VX1SQ!U!]<$=>35>ST
M#1M/N!<66DV%M, 0)(;9$;!ZC(&: ,%['QK/-<M->:<(9H]@ACG=1$>/F5EC
M#9^I[TB:-K\;VLCVFD74EJ"(9)[R<L,]\E3D^YKL** .8AB\1VJLD7A[P]L9
MMS!=1D3)]?\ CW-6/[2\2Q_ZSP[:O_U[ZD&_]#C6M^B@#G_[?U5#B7PCJW^]
M%/:L/UF!_2E_X2G;_KM!UR+_ +=/,_\ 0"U;]4+_ %O2M+8+?ZC:6K,,JLTR
MJS#V!.30!0_X2_3 /WL&JP_]==)N5'YF/%'_  F>@#[U_L_WX9%_FM7].UFP
MU8O]BF:4)U;RV5?P) !_"J3ZWJ3NR6OAZ[;!P&GE2,']30 S_A-O#7_08MOS
M-+_PFGAX_<U))/\ KE&[_P @:T';4IM+#11P6U\P'RR,71>>>1C/%4X-.UMI
MXY+K6UV*<M##;!0?;<3F@"/_ (2_36_U$&J7!_Z8Z9<,/^^MF/UIG_"1ZA<,
M5L?#.HR?[=Q)# OX@N7_ /':T-1T6VU25'N9+G:@QY<4[1J?KM(-.T[1=.TH
MNUE:K$SC#/DLS?4DDT <K<>*[V2X>WEU;0]/D5BK0VIDOYP0<$8 3!]MIJZ-
M&@OM,.H7;:MK;8W);3C[/OYZ")O+4?\  L5U855SM4#)R<#O2T >?ZNFL$:;
M+'X22/2[6?=<6OGJ\C C ;RXU8-MZXR3[5;TS3]5N=4U&\TAVT32Y_+"PSV?
M[R610=TJHQ'E@@JN"N3LS@=^UHH S=.TV\M)FENM8N[TL,;)4C51[@*HJ"X\
M*Z1>74EQ=V[W#R,6(FE9E'T!. *V:* *]M86EG:"UMK>..W&?W:K\O/7BID1
M(UVHJJ/0#%.HH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH *HZ?\ \?.H_P#7S_[32KU4=/\ ^/G4?^OG_P!II0!>HHHH **** "BBB@
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
MN)XSE9+J]FFP?7#,1^E:C6UN\WG-!&TN-N\J"<>F?QJ6B@!  HP  /:EHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBN!^*6K:]H^F:=<Z3<26UFMTGVZ:WC6295WH%VHQ^922<@<G@
M=": .^HKSJ[\8ZW;:XCJ;672O[%FOH&0$-=,B!@Y!Y0'/"YSZUFQ>+/$ G31
MVU0M-</9N+[R(P\:RP22,@7;M(S%P2"</WP* /5ZHZ?_ ,?.H_\ 7S_[32N1
MU/Q-J9^$L>N0WD5CJ$@@4W3QADCW3I&SE3QC!)Q7$>'?''BVT\;K:W<>IZI9
M7BO-';I81122_("K;B$ (782 >,XYQR >YT5QT>K>.M2Q]F\-Z?I49;&_4;W
MS7V\<[(ACOTW=CG'&<F71?B9J2.+O6M-M Q^46DCJ%'?I&&S_P #H ]#FGAM
MHS)/+'$@ZL[!1^9K'F\7:-&VR*Z-T_9;5#+G\5&/UK%E^'J2>3.-1<W8B"2-
M/&)U)Q\S L=X.>GS$#TJ?3_ :6C6GVK6K^]BM9#*D,HCVEO<[=WT^:@":;Q9
M<,LQMM*9%A&9'O)TBV#U*Y+?I4(O]:OKJ"W;5+:U-Q'YJ"SM'F^7GGS&P!T/
M:M2\\)Z3?7<ES-','E&)%CN'1']RH."?>KFF:+I^CI(EC;+$),;SDDMC.,D_
M4T </-=Z--;>;>7NH:C+YFPV]YJ*P<=R8T*J1[$&MVW2#1[*YNM*TW2[2P:,
M&WEM827=CCEE51QG/>N@33;&,Y2SMU/7(C%60 H 4  = * .5M=8O[R\L5QJ
M 4,!,4T_;&^3UW,<JM2ZG97T43VL<6J:HDS^89!?+;F/_9!3:<5TU% '/:;I
MK7&H37FHZ';P2O#Y7F/-YS,O3:>V, 9]:1;'7+8^386VB6MK&Q\E45OE'T
M!^E=%10!2BBU(Z8T<MS;K?$'$R1$H#G@[2<G\ZSAIGB(L"_B*#KT73P/_9S6
M]10!S/C;PY<>)=(CM[>:$-#*LP@GA62.4KV8,"/6L/PEX&ET[Q(NM75C86?V
M>!H8(H;6!7)?&YRT:C'"@#J<,W3//H5% &1>:?K$UT\EKK:V\1^[$UH'Q^.X
M59LK?48+.1+N^BNK@DE)!!Y8'' (W'//O5ZB@#!QXKC/#:1,/]HR1_R!K1O+
MB_M[..2WLENKCC?$DH0>^"U7:* ,BTU:_FND@NM#NK8-P9/,1U7ZD&GW^OV6
MF7/DW8N$& ?,6!F3\P#6I10!GV>IZ;K,$AMY4GC3&\,A&.XR&%-6UT2^GFF6
MWT^XFEB,,KA$=GC/!5CU*\=#Q6@$49PH&>O'6LJX\+Z%=-NFTJU=LYSY8SF@
M"1?#VDQI;)#8QPI:MNA6',80^P7%!T*TV7:K+?+]J8/(1?3$@@Y^3+?(.>BX
M%2RZ5;R::EA&]Q;PI@*;>9HV&/\ :!S5.WT&XM;F.2/7M49%8$Q2NDBN/0EE
M)_(@T 6UTI4N8IDO+T"./R_+,Q96XZD'.3[U"NC3K9I!_;>IEDD\SSBT1=AC
M[I^3&W\,^]/U&VU>:9'TW4K:V4##)/:&8,?7AU/ZT[38]8C=QJES8SKCY&M8
M'B.?<,[?SH &TV<S7+C5KX"9-BH/*Q"?[R?)G/\ O$CVIJZ7,&M&;5K]S;@[
M@3&!-_OX3^6*JS7'BI)G\G3=&FBW':7U"6)L>X\EAFKR3:H=+,KV-LM_CBW%
MT3&3G_GILST_V: ,;Q!H5ZWAO4+;3;B^N;JX92F^\,93GG:P(P ">.]9>G:%
M=Q^)+*X70'M;,VC6=WYMZLBN@7Y3L!P3P0>.=U3>)+WQ8VB3#^QK6&+<AG>U
MU)WE\K<-^T"$'.W/3G^55=/D UU/^$)CMI[0VY^V>;/(D ?(VD$*V7QNR/IG
M% '96VCZ990106NGVL,41+1I'"JA2>I&!P?>KM9>G_V\;C.I?V:L.W[MMYA;
M/U; Q^%1W5AK=Q=2-%KB6UN3\B16:EU'NS$@_D* -BCI5&UL)HK&2VN=1NKM
MY,CSGV(Z@CML50*H#PAI#'-S'<7ASG_2[F2;_P!")H U+S4;/3HA)>744",<
M*9' R?;UJG9^(M,U"\%M:3/,Y!.5B;:/^!$8K0-M T:(T,;+'P@90=OTJ15"
MC"@ >@% &5>ZCJD=TT%EHSW"C_EL\ZHGZ\U8LCJ<MK)]N2V@F.=GDL7"^YR!
MS5ZB@#!'ARXG'^GZ_J<^?O)"ZP(?IL 8?]]5ISZ98W4,,-U:0W*0X,8N$$I4
M@8SELG/OUJW10 BJ%4*H  Z 4M%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 5D:]X9TGQ+%!'JMJ)A;R"2-@Q5E(()&1V.T9%:]% %$Z-IS7,
M%P;.(R00&WCXX6,]5QTQP*ST\&>'H].DL%TU!;O(LK#>^[<H 4AL[A@   'I
M6]10!CZSX8TS7/#,OAZYB9-.D1$*0MM("L& !^JBN6\.?#'0])\0MJL%SJ;W
M5C-Y<1FNRXVE%X(/;G^5>@U1T_\ X^-1_P"OG_VFE %ZBBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ JCI_P#Q\ZC_ -?/_M-*O51T_P#X
M^=1_Z^?_ &FE %ZBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /(
M-5UF]TOXJWS2:I+<1RVDJVL5O=*(X65"=DR-@+R,[@>_)J"WUJ_2"UT6[N[R
M&?S8/MM]#JTEPDH:"1UVR''EDLGS*O'(P2#7K7]DZ<=2;4C96_VUH_*,_EC>
M4],TQ=$TE;1[1=+LA;.V]X1;IL9O4KC!/ Y]J *?A.]N[WPAIMW>;I+E[<,_
M&"Q['GN>*M:4[22:@[Q/$QN?N/C(_=IUP2/UK0551%1%"JHP !@ 52T__CYU
M'_KY_P#::4 7J*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "J.G_\ 'SJ/_7S_ .TTJ]5'3_\ CYU'_KY_]II0!>HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M1;:.&&VN+0NA=5"F7 D7#$#C.<47W@&YNYM#/]L1-;Z4#)]FN+0R1S3DY,S
M2+\W/ .0,GUH T-(\9PZMKAT\6;Q1/YOV:<OGS?+8*^5Q\O)_&NGKE=&\%KI
M.N?;S?&:*/SC;0^5M,9E8,^6R=W(XX&/>NJH **** "BBB@ HHHH **** "B
MBB@ K&\4>)+;PKH4^J7,,TPC!VQ0J69S@G'L.#DGI6S5#6],&M:'?:8TIB%U
M \/F!=VW<,9QWH Q]0\72:>=/FDTM_L%WY"_:#.H(>4X"JG5B.">G!J"_P#&
M[V*+='27;3OM2VQNOM"C):41C:O5CSG''%17G@B\N=?TO4AK$31:;;+#;6L]
MH9$C?&#,,2+\^. 2#CMSS3+GP'<2ZIHUVFK0F#2ES%:7%H9(S*3DRX$B_/R<
M9SCKUYH UM&\6VNN>(-4TNUMYU&G[0TTBE1(22#M!Y(!4C/?!KH*R;30UM?$
MVH:R+@L;R&*(Q;<!-F[G.><[JUJ "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@!&944LS!549))P *R?^$J\._P#0
M?TO_ ,#(_P#&M<C(P>E0?8[7_GVA_P"^!0!SFK>/=(L9;2&SO-.OI;AF&!J$
M2*@ SDL3QZ4ND>/-'U#[6EY?:=8S6TPB*M?Q.'!17W*P/(^;'U!J_J_AJVU2
M6TFCN9K">U9F22UCA).Y<$$2(P(Q[4NC^&[;21=L\\M]-=3":26ZCB#9"*@
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
M55'N3TK-'BGP\S!5U[2R2< "\CY_6M5E5U*LH93U!&0:B^QVH_Y=H?\ O@4
M8_B+Q;IWAMK6*Z<&>Z)\J/S%3('4DL0 *?H/BS1?$5O&^GW]N\K[LV_FKYJE
M3@@J#V(Z]*?K.@+JMS;7<5W):7=N&5)$17#*W565@01P#ZBI=$T.UT.Q6WA+
M32;F>2XE \R1V)+,2 !R3T   X% $KZUI4=\+%]3LUNRP40-.HD)/0;<YS7(
M^(_'=UI'B'4M-B_LJ);*Q6[4WDY1IB=WR*!U/R_K7<&WA,GF&*,OG.[:,_G7
M)ZYX M-?U+5[NZN>+^SCMD B^:!T)99 V>N2...G6@"8>/--AM'DO8;FWGAL
M(;^>$QY,:2$@#W((.15BQ\:Z3J.M2Z7;?:'EBW!Y1%F-2 "02.AP>X&:P]6^
M'E_JFYV\0JLUQIT5A>R-8[O-\MBP=1O&PDDY!W<=,58@^'WE>+H==.HQJ8MY
M @LUBFDW+MQ(X;:ZCJ 4SG')H GM/B3H5]9_:K=+UXV95A(@SYY8D (<X)R.
MA((K/UWXE1V,%I<:;:K<13V5[<,)B49'MU!V$=CDD'Z5GCX/0-+)-)J-IYN8
MS$D>G".!F5B=TL0?:[$<$KL'7BK][\,$O-.L[5=2A@,%G>6[F"P2-&:X4 L$
M4@*%QTY)[G/- '47&H:C)H-K>V%O;&::-)'^T2E(XE*Y))ZG%<>GQ-N;O1;"
M[L]/@:>6SN;R=9'8((X9/+.P@9.XY(SVKH/$OA.ZUWPC#H%OJWV-%6-)I/(+
M^<B@94@.I ..<'-4+_P#->V-E''J-G:7$%G+I\C6U@5B:W<CY5C,A*,-HP=Q
M'7CD8 *VG?$H7U]:RM:(FDW<LL,4NXF4-''YA)'3! (_"K_A+QG<>(+R*WN[
M2*#[58)J-MY;EOW;-C:V?XAQTXJ"P^&]K8:E;D7F_2K5Y)8+,PX<2/'Y;;I-
MW*XS@;0<GK5SPMX*_P"$<O$N)M0^V&WLTL+0"#RS' K$C>=QW/TRPVCCH,T
M=91110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% &)K.NW&EZA8VT.FRW2W).^1#_JP/_KD?G6'8>.KRY\-
MZIJTFEQL]FA9;>";+C"[B) P!7'KR/3-=+JVM:1I2I%J>J6MBTZMY?G3K&S
M8R5R>V1^8K#T;PWI\UEJ^W6I=3.H1F"2X#1ED1EQC*C!.#G)S0 ESXSF@OHD
M6QC:U2*U>Z?S#N0SE@H48YQMR<D=:L^'?$]QK-\T$]DD"20?:;=TD+;H][)\
MW P?ESWZU)/X.LKB^M[AKBY"1QPQRP KLG\DDQE^,Y!8]",]\TNBZ!IVB:M*
ML5_+-<F "."5U)AAWL<*  =NXGDY^O% %.W^(&E/Y23"<R/@LT,+-&NYW1<D
M@=2AJQ<^.]"M;9+B2>0H\<4BX3D^86VKS_%A'./1345MX#TZV1E2YNSN,9Y9
M?X)'D';U<_@!1+X"TQ[:>..>XCDDOA?1R_*QA<*5"J&4KMVEA@@_>/>@ _X6
M#H<C(ELT]S(\)F58HBW&"<'T/RD?6H+#XCZ+/;Z;]M=K6ZN[:*9XV'$1D7(4
MGW[<=,&IY/ EE+<64LE]>,+4<*2GSG!&2VW<.O12!TXJ*V^'FGVK0A;Z\:-8
M8H94(C_?"-=J[B%R/EP#M(R ,T 7=#\60Z]K-W:6]M*EO#;13I+*I4R!V<<
M]OER#WS4+>/M%56;_2R"VV+%NQ\_YMF4_O#=QFETS1M.\*7,ES<ZS*_FVRP1
MB\DC4)%%O?"X S@%B2<\"H;?P'IR-;O]NO)8K=@UJA9=L*;]^Q<+R,XZY. .
M: -B#78+[07U6Q@GG4!P(=NURRDJ5(/0@@BL6;Q7JO\ PC=KK<&EV[0O$))(
MWN,.26QL0 <M]<#-;EEIUIH6CSP&X9;8/--)+,P&W>S.V3P !N-<[I^E:3JT
M=DFA^*GDCTY-JK;/;S $G.X@HV#[C% $VJ^+KZS6]N+:P@DLK2X\AI9)B"Y"
MID* IYW,PYP/D.35X>* NNWME/:M!:VMC]L-S(PPRY(.!Z#:>:2?PE%+IBV$
M>IWT$+&4SB,I_I'F.7?<"I&2Q/(P>3S4U[X5L;Z25FDF1)+-+)HU(VF)6W8Y
M'<$J?8T 9G_"9W$$B)>Z4]O_ ,2PWSDR?Q  E!]"<9..:LZ-XI?4=#U#4)EM
M%-ID_N)6<8V!OF!4,#SZ?3-7-9T73;N9[W49C'%]E>T<,X5-KD=^QS@#FH[+
MPM;VMEJ4$EY<W,FH*%FGEV!MH0(H&U0. /3OS0!%IGC/3-2OX;%!.)Y/E#F)
MA&7"ABH8^QS4&J^.].T^74[:*&YN+O3U)=$C.TL%#;<_0BK%AX/L--FMIH[B
MX8V\S3KO*X)*!"#QTP*RI]$\.>(KJ]UJ/7Q/"J/&[031%(=R '+ 9Z#.&) ]
M* -%?'6CJ=MRTT 5&+RO$?+#K&9&3=_>"ACCV-0R>.[./4;.W:UN8UN XVS1
M,DN]0"%5/XL@TP^ M+O(SYM]=W-C,KR" LGEEY(C$T@(4')1V[XRV<5-/X(A
MO&BEOM7U&ZNH=WE7$C(&C)Q@J H (QZ<Y.<T :.K^);#17ACNA.TDL;3;(HB
M[)&N-SL!T +#\ZA7Q597&FZM>6@D:/3HY&>62,K&Q52Q /?\!3M9\,0:S-#.
MUY=6TR0/;.\!4&6)RI96R#C)4'(P1V-+#X7LK?0=1T>.286U\)0YR-R"1=I"
M\=ATSF@"B/'VBI*\4[SQF/*O+Y+>7O"!RH;N=I!Q[U5C^(VFH]X;V&:V2*X6
M&%'7$DF8ED)*G&,9_E5B7P!I<]NT$LURT;7+7)&Y?O-$(O3H H/U_*HF^'UL
M\AN)-5OI+WSO-%TZQ,P_=B,KM*;<%5';.0#0!JV/BS2]2NH+>T>622=0\8$9
MP4*[@_\ N]L^O%+KWB.U\/M;M=G$,B2NY"DMMC3<< #G\:J)X16TE-[9:A=+
MJ"0&&*:0JWRA<*K?+R WS=,YJSKOABV\10P)>SS(T4<B9B(&?,3:QY'Y4 5O
M^$YTGRMPCO3(&<- +9C(H0 LQ7K@ @Y]ZBL_'%A(E^;M6A:TEG!" MF..;R@
MW3J3CCWJ2X\%V[W<MY;:E?6=U(S9F@*;@K*JLHRIQ]T'/4'H:JS_  \L)7E9
M-1OXA,TQF"LA\P22B4J25)P&'&.<=2: (K_XAVD-]'#:P,\#1S,UQ,K*A,<D
M2?+@'<"9#S[5=7Q]HC&8$W2^66"[H"/-(D\LA/[QW<57E^'EA,0C:C?_ &=%
MD6&#*;8@[H[8.W)YC'4GC--U'P) ; "QDEDNHB[0>;.(@&:7S<[A&V,'I\IX
MZT :R^*]-.A7>KL+A+:T=HYE>$AU9>"-OKDXK.NOB'HL#74'F/'=PP22;)D*
M@,B%RAQD@X!.,=J72_"=PWA.]TK6KPR7%]<23SR0L&(+-D ,54'@#G:H] *?
M>>!;"\N]0F-W=117R2B6&/8%W2(49@=N[."3@G&><4 '_"?:.DK12BY#(2K.
ML#&/>$#LH;N0I!^E.U#Q]H.F2&.>>3<&8?*F<A0I8CU WJ#[T^+P5IT;+F6>
M11</<%6*X8O$(B#QTVC\ZJM\/M/%I:107EW!+;I+']H&QW=9&#,#N4C.0""
M",<&@!NH?$32[>VOVLHKB\EM,9$<9V-DKT;_ ($*ED^(.C1.Z-'?%D>6,[;9
MB-\9Q( >^T<_2FW?@"QO+FXFDO[T&6+RD V?NQE3P=N6Y4?>)Q4__"$V)C"-
M=73?O;J;<2N29\[NW;/']: (I/B-X;BDN4:[8_9X'G9@F00B;V [DA><4J>.
M+6XU;3["VL[HO<7+02^;$4,)$>\$CT((JLWPWTTVUW:K>WB6MS;R0M$OEC!=
M-C/G;N)QG@DKD]*TSX2M/[:CU1;JY69+@7&T%=I(B\O:>.A'XYH 6^\7Z;8W
MTMFR7,DL;>66CA+)YNPN(]W]X@<#W%5M,\8+-X:TO5=1M7AFU'!AMK=6D;!&
M>F >G)-3W'A&TN-6>]-W=+%).+I[567RVF"; YXW=,<9QD XIS>%+==)TJQM
M[RZMWTM0MO<(5+X"[3G*E3D>U &;H/CZTU2&W:[C%M)/;1S!%W,%+1M(020!
MT0X]:@O/B38V^CZC>0P2W$UO#//%"D;#Y8UR#(<?*"2!GFK$7PZTN+2VL?M5
MXRLENGF%U#CR<@$$#N"0?6EOOA[87?V[R;^]M#?1RPSF$I\T<@P4^93@#L>O
M)YH E?X@Z!#<36\URPFA0M(%7(R%#,H[D@&A_'VE"V9HXKQKD.T8MC 1)E8Q
M(6([+M93G_:%-D\ Z>\MV5O+N.&YW,\*;  S*%+9V[NV<$XSVI\_@:SDO)+R
M"_O;:Z=RWFQ%"0IB2)DPRD8(C4],Y'!% #O#_C?3]=EMK54E2]DMTFD0(2B%
ME#;=WXUT]<I9>!;6PO+6Y@U&]#VMOY$.?+.WY0H;.W)Z9P25SVKJQP!SGWH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH Y;6]$N]2
M\::1=137=M;06-TDEQ;.JD,SPE5.0>"%8]/X:YK7=&\2/J%Q+;#4I@MX6MU2
M?",NU!EB&!49![$=>*].HH \Z:SUN&/5"=,U.XOW:XWR?:R(98VFS&$4-D$1
MX'&WH<DYS4G@;1];L=:DGU6*X\M;9XHY9V!)'G,RC[Q/W2.]>@T4 >6R6&N:
MA8W:V%[=3VME="T5H)"S2PABS$$L-Q 9%)R#E&YIE_IGBI[?2H8;?43);112
M+<>=\Q(E)9' <#(0#KNSG%>J!0HP  /:EH XE-(UF'X>7L%NURFL3M([%YB[
MD>:>%). 3'P,$=1TK"C\.:_-9QQLVK>4BW;Q+)<&-U8K'Y8.UR<;@Y )/7TX
MKU.B@#R'4-!\3W"2.;34GU1;>\(N1< 1Y>V=8@@W?*P8@9 ')ZU8U/2/$5G!
M=7ZS7<+M-/YLDMYM00[5V@9;:N3NP>#DUZM2$!@00"#V- 'G?AIWUCPAXI%B
MEU)!+/)'9I-/YI(^SQC"MN((W[NAZYJ'4].U[5;.&?3["\T^>TL$MG,FU9)O
MG0LJ8;LJMC)')[=:]*551=JJ%'H!BEH \RLM)UN%+3[7;ZW<VJM-Y$:W CDB
M<NNTO\Y^7 ?&2V ?RJKH7BUEU,/+JGVF4@,RR!48_:$(,9W'H@;LO!(P:]7H
MH \GU;PMKPCO([2+4)8FGF1$:[9@8?W;1XW-_>WX/6FWFB>*)50PKJT.E^=.
M8+59=\\9*Q;"Q+CY=RS$?,<;AP>WK5% '+^'-+OK;^V9M26>:>>8A%FF)5T"
M#@#.U03GH*Q&T.[U6T\1M)I5Q'#=VT?D0793?YJA_E&TX\M<J #[UZ'10!2T
ML216%M;2Q.CQ6\88G&,[<$#Z8J[110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
MEC3[-<>:SR2 NC-SN'*8)V8/; !Z4]_;)J$=@TN+J2,R(FT\J#@G/2K->?\
MA[PQJ.C^(A?-I<.Y4E26Y29=UTSR;@Y'J%/?GC KT"@ HHHH **** "BBB@
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
MMO;0PA$V((XPNU<YP,=!GM2-86;VRVS6D!MT(*Q&,;01R,#I0!P>C^(]3M?
MFKZH9?M5U;RJ(OM3%EY5!@XYQ\QJ"Y\8ZWI^HZM9"73?.M'ED>>=)?+D\N"%
MMB*9#L)+GN1@'@DYKT,6%FL#P+:0"%SEHQ&-K?4=#T%96N>$M+\0(J7B,L>\
MR.L:H/,8@#+94G.!C(P<4 <./%?B)+>\9;BV\N\ENXX2R.SP.ENTH(.X#;\I
M&W'OGM6QX=\5:O/K=CIE^;1K>2!0DR(Q:5A&K$[@[8;)Y5E7CD$]*[)-,L(X
MTC6SM]J9V@Q@X)&TGZD<'U%)!I.G6UPMQ;Z?:Q3*GEB2.%58+_=R!G'M0!Q.
MJ>,M?M;F[2UMK.1?[4;3X (LE0D/FEW+S1J2?N@97UR?NU!-\0]7M)DGN=/M
M/LAMFD$4+>:TLBPM(4$D;L%8E> RX(SAR1@]_/IEA=0207%C;2Q2OYDD<D2L
MKMQ\Q!')X'/M0NF6"W4=TMC;"XC38DHB7>J], XR![4 <'8>,O$U\;6T\C38
M;JXFC59I%5EVM&S?ZN.X<C[O!+#(/08IMSX_UDP1"SL(6F:XCL)/W>?*N=DD
MDGWI44@!44 N.6/)QM/>6VDZ;9(J6NGVD"J^]5BA50&QC(P.N.].FTVQN+>6
MWFLK:6&5M\D;Q*RNV<Y((P3GO0!YV_C'6M3-F-]G8*EU:QS1)(&DF+L02K*Y
M7;\OW?FZ_>XY]-!# %2"#W%5&TG36EAE;3[0R0*%B<PKF,#H%..!]*LQ11P1
M+%%&L<:C"J@P!]!0 ^BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
-HHH **** "BBB@#_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>10
<FILENAME>fix-20211231.xsd
<DESCRIPTION>EX-101.SCH
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8042.36810 -->
<!--Based on XBRL 2.1-->
<!--Created on: 2/23/2022 9:26:59 PM-->
<!--Modified on: 2/23/2022 9:26:59 PM-->
<xsd:schema targetNamespace="http://www.comfortsystemsusa.com/20211231" 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/2021" xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:us-types="http://fasb.org/us-types/2021-01-31" xmlns:us-roles="http://fasb.org/us-roles/2021-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:srt-types="http://fasb.org/srt-types/2021-01-31" xmlns:fix="http://www.comfortsystemsusa.com/20211231" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:currency="http://xbrl.sec.gov/currency/2021" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:sic="http://xbrl.sec.gov/sic/2021" xmlns:srt-roles="http://fasb.org/srt-roles/2021-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2021" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:exch="http://xbrl.sec.gov/exch/2021" xmlns:naics="http://xbrl.sec.gov/naics/2021" xmlns:srt="http://fasb.org/srt/2021-01-31" 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/2021q4">
  <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>00100 - 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>00200 - 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>00400 - 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/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2" id="DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2">
        <link:definition>40207 - Disclosure - Summary of Significant Accounting Policies - Leases (Details) Calc2</link:definition>
        <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>40501 - 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>40602 - 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/DisclosurePropertyAndEquipmentDetails" id="DisclosurePropertyAndEquipmentDetails">
        <link:definition>40701 - Disclosure - Property and Equipment (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/DisclosureDetailOfOtherCurrentLiabilitiesDetails" id="DisclosureDetailOfOtherCurrentLiabilitiesDetails">
        <link:definition>40801 - Disclosure - Detail of Other Current 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/DisclosureDebtObligationsFuturePaymentsDetails" id="DisclosureDebtObligationsFuturePaymentsDetails">
        <link:definition>40902 - Disclosure - Debt Obligations - Future Payments (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>41002 - 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>41003 - 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/DisclosureIncomeTaxesProvisionDetails" id="DisclosureIncomeTaxesProvisionDetails">
        <link:definition>41101 - Disclosure - Income Taxes - Provision (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/DisclosureIncomeTaxesReconciliationDetails" id="DisclosureIncomeTaxesReconciliationDetails">
        <link:definition>41102 - Disclosure - Income Taxes - Reconciliation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" id="DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails">
        <link:definition>41104 - Disclosure - Income Taxes - Deferred Tax Assets (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>41403 - 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>00090 - 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>00105 - 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>00300 - 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>10101 - 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>10201 - 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>10301 - 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>10401 - 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>10501 - 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>10601 - 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/DisclosurePropertyAndEquipment" id="DisclosurePropertyAndEquipment">
        <link:definition>10701 - Disclosure - Property and Equipment</link:definition>
        <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/DisclosureDetailOfOtherCurrentLiabilities" id="DisclosureDetailOfOtherCurrentLiabilities">
        <link:definition>10801 - Disclosure - Detail of Other Current Liabilities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" id="DisclosureDebtObligations">
        <link:definition>10901 - 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>11001 - 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/DisclosureIncomeTaxes" id="DisclosureIncomeTaxes">
        <link:definition>11101 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans" id="DisclosureEmployeeBenefitPlans">
        <link:definition>11201 - Disclosure - Employee Benefit Plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" id="DisclosureCommitmentsAndContingencies">
        <link:definition>11301 - 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>11401 - 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/DisclosureStockBasedCompensation" id="DisclosureStockBasedCompensation">
        <link:definition>11501 - Disclosure - Stock-Based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies">
        <link:definition>20202 - 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/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables">
        <link:definition>30203 - Disclosure - Summary of Significant Accounting Policies and Estimates (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/DisclosureRevenueFromContractsWithCustomersTables" id="DisclosureRevenueFromContractsWithCustomersTables">
        <link:definition>30303 - 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>30403 - 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>30503 - 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>30603 - 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/DisclosurePropertyAndEquipmentTables" id="DisclosurePropertyAndEquipmentTables">
        <link:definition>30703 - Disclosure - Property and Equipment (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/DisclosureDetailOfOtherCurrentLiabilitiesTables" id="DisclosureDetailOfOtherCurrentLiabilitiesTables">
        <link:definition>30803 - Disclosure - Detail of Other Current Liabilities (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" id="DisclosureDebtObligationsTables">
        <link:definition>30903 - 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>31003 - 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/DisclosureIncomeTaxesTables" id="DisclosureIncomeTaxesTables">
        <link:definition>31103 - Disclosure - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" id="DisclosureStockholdersEquityTables">
        <link:definition>31403 - 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/DisclosureStockBasedCompensationTables" id="DisclosureStockBasedCompensationTables">
        <link:definition>31503 - Disclosure - Stock-Based Compensation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails" id="DisclosureBusinessAndOrganizationDetails">
        <link:definition>40101 - Disclosure - Business and Organization (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/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails">
        <link:definition>40203 - Disclosure - Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails">
        <link:definition>40205 - Disclosure - Summary of Significant Accounting Policies and Estimates - Risk (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" id="DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails">
        <link:definition>40302 - 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/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" id="DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails">
        <link:definition>40303 - 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:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" id="DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails">
        <link:definition>40304 - 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>40401 - 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>40502 - 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/DisclosureAcquisitionsContingentEarnOutObligationDetails" id="DisclosureAcquisitionsContingentEarnOutObligationDetails">
        <link:definition>40503 - Disclosure - Acquisitions - Contingent Earn-out Obligation (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>40504 - 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>40601 - 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/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" id="DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails">
        <link:definition>40603 - Disclosure - Goodwill and 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/DisclosureDebtObligationsDetails" id="DisclosureDebtObligationsDetails">
        <link:definition>40901 - 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>40903 - 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/DisclosureLeasesDetails" id="DisclosureLeasesDetails">
        <link:definition>41001 - 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/DisclosureIncomeTaxesProvisionChangesExaminationDetails" id="DisclosureIncomeTaxesProvisionChangesExaminationDetails">
        <link:definition>41103 - Disclosure - Income Taxes - Provision Changes, Examination (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/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" id="DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails">
        <link:definition>41105 - Disclosure - Income Taxes - Loss Carryforwards 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/DisclosureEmployeeBenefitPlansDetails" id="DisclosureEmployeeBenefitPlansDetails">
        <link:definition>41201 - Disclosure - Employee Benefit Plans (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" id="DisclosureCommitmentsAndContingenciesOtherAndBondsDetails">
        <link:definition>41301 - Disclosure - Commitments and Contingencies - Other and Bonds (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/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" id="DisclosureCommitmentsAndContingenciesSelfInsuranceDetails">
        <link:definition>41302 - Disclosure - Commitments and Contingencies - Self-Insurance (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>41401 - 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/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" id="DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails">
        <link:definition>41402 - Disclosure - Stockholders' Equity - Anti-Dilutive Stock Options (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails" id="DisclosureStockBasedCompensationStockOptionActivityDetails">
        <link:definition>41501 - Disclosure - Stock-Based Compensation - Stock Option Activity (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/DisclosureStockBasedCompensationStockOptionPlanActivityDetails" id="DisclosureStockBasedCompensationStockOptionPlanActivityDetails">
        <link:definition>41502 - Disclosure - Stock-Based Compensation - Stock Option Plan Activity (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/DisclosureStockBasedCompensationFairValueAssumptionsDetails" id="DisclosureStockBasedCompensationFairValueAssumptionsDetails">
        <link:definition>41503 - Disclosure - Stock-Based Compensation - Fair Value Assumptions (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>41601 - 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>00305 - 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>11601 - 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>31603 - 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/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails">
        <link:definition>40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Cash Flow 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/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails" id="DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails">
        <link:definition>40206 - Disclosure - Summary of Significant Accounting Policies and Estimates - Insurance Recovery (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/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails" id="DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails">
        <link:definition>40301 - Disclosure - Revenue from Contracts with Customers - Revenue Recognition (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-20211231_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-20211231_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-20211231_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-20211231_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="http://xbrl.sec.gov/dei/2021q4" schemaLocation="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/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/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.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" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <import namespace="http://fasb.org/us-gaap/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd" xmlns="http://www.w3.org/2001/XMLSchema" />
  <import namespace="http://fasb.org/srt/2021-01-31" schemaLocation="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" name="ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" id="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="MarketRatesAbstract" id="fix_MarketRatesAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtInstrumentMarketRate" id="fix_DebtInstrumentMarketRate" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="instant" />
  <element id="fix_WarrantyPeriodOfLaborAfterServicing" name="WarrantyPeriodOfLaborAfterServicing" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="RetentionProvisionsConstructionContractsHoldingPeriod" id="fix_RetentionProvisionsConstructionContractsHoldingPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CashPaidAbstract" id="fix_CashPaidAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ContingentConsiderationObligationsMember" id="fix_ContingentConsiderationObligationsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" id="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <element id="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" name="EffectOfUsingWeightedAverageCommonSharesOutstanding" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="MaintenanceRepairAndReplacementServiceMember" id="fix_MaintenanceRepairAndReplacementServiceMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="SalesRevenueServicesNetPercentage" id="fix_SalesRevenueServicesNetPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfBusinessAndOrganizationLineItems" id="fix_ScheduleOfBusinessAndOrganizationLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfBusinessAndOrganizationTable" id="fix_ScheduleOfBusinessAndOrganizationTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="SystemInstallationInNewlyConstructedFacilitiesMember" id="fix_SystemInstallationInNewlyConstructedFacilitiesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <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="DebtInstrumentVariableRateBaseRateMember" id="fix_DebtInstrumentVariableRateBaseRateMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <element id="fix_DebtInstrumentInterestRateOptionsNumber" name="DebtInstrumentInterestRateOptionsNumber" nillable="true" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" name="ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DebtInstrumentFinancialCovenantsAbstract" id="fix_DebtInstrumentFinancialCovenantsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtInstrumentCovenantLeverageRatio" id="fix_DebtInstrumentCovenantLeverageRatio" type="xbrli:pureItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" id="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" id="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" id="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" id="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" type="xbrli:pureItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DebtInstrumentCovenantFixedChargeCoverageRatio" id="fix_DebtInstrumentCovenantFixedChargeCoverageRatio" type="xbrli:pureItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="LetterOfCreditFeesPercentage" id="fix_LetterOfCreditFeesPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" 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="ScenarioCovenantRequirementMember" id="fix_ScenarioCovenantRequirementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <element id="fix_ComputerAndTelephoneEquipmentMember" name="ComputerAndTelephoneEquipmentMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="BuildingAndLeaseholdImprovementsMember" id="fix_BuildingAndLeaseholdImprovementsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfContractsInProgressTableTextBlock" id="fix_ScheduleOfContractsInProgressTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <element id="fix_AllowanceForDoubtfulAccountsReceivableAcquired" name="AllowanceForDoubtfulAccountsReceivableAcquired" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ContractReceivablesContractsInProcessNetReceivableLiability" name="ContractReceivablesContractsInProcessNetReceivableLiability" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock" name="ScheduleOfFloatingInterestRateBasesTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="LetterOfCreditFeesAmount" id="fix_LetterOfCreditFeesAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="DefinedContributionPlanAmountPayable" id="fix_DefinedContributionPlanAmountPayable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" id="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" type="xbrli:integerItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <element id="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" name="ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DeferredTaxLiabilitiesLongTermContracts" id="fix_DeferredTaxLiabilitiesLongTermContracts" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="LossContingencySuretyAbstract" id="fix_LossContingencySuretyAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="AutoLiabilityMember" id="fix_AutoLiabilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EmployeeMedicalMember" id="fix_EmployeeMedicalMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EmployeeMedicalPlanOneMember" id="fix_EmployeeMedicalPlanOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EmployeeMedicalPlanTwoMember" id="fix_EmployeeMedicalPlanTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" id="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EmployersLiabilityMember" id="fix_EmployersLiabilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <element id="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" name="SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="SelfInsuranceDeductibleAmountPerIncident" id="fix_SelfInsuranceDeductibleAmountPerIncident" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="SelfInsuranceDeductibleAmountPerPersonPerPolicy" id="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="SelfInsuranceAggregateLossInsuranceCoveredAmount" id="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="SelfInsuranceNumberOfMedicalPlans" id="fix_SelfInsuranceNumberOfMedicalPlans" type="xbrli:integerItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="instant" />
  <element id="fix_WorkersCompensationMember" name="WorkersCompensationMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" id="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" id="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="SalesRevenueMember" id="fix_SalesRevenueMember" type="dtr-types:domainItemType" 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_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" name="DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="EmployeeAndNonemployeeStockOptionMember" id="fix_EmployeeAndNonemployeeStockOptionMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="LiabilitiesDueToFormerOwnersCurrent" id="fix_LiabilitiesDueToFormerOwnersCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" id="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" id="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EquityIncentivePlan2012Member" id="fix_EquityIncentivePlan2012Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="RestrictedStockAndRestrictedStockUnitsRSUMember" id="fix_RestrictedStockAndRestrictedStockUnitsRSUMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" id="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <element id="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" name="DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" nillable="true" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" id="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" id="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" id="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" id="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TypesOfPerformanceStockUnits" id="fix_TypesOfPerformanceStockUnits" type="xbrli:integerItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PerformanceMultiplierForDollarDenominatedAwardGranted" id="fix_PerformanceMultiplierForDollarDenominatedAwardGranted" type="xbrli:pureItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" id="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" type="xbrli:durationItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" id="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PercentageOfUnitsMeasuredOnPredeterminedEPS" id="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <element id="fix_ContingentEarnOutObligationToAcquireBusiness" name="ContingentEarnOutObligationToAcquireBusiness" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" name="StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" name="StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <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_DebtInstrumentVariableRateFederalFundsRateMember" name="DebtInstrumentVariableRateFederalFundsRateMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DebtInstrumentVariableRateOneMonthLIBORMember" name="DebtInstrumentVariableRateOneMonthLIBORMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DebtInstrumentVariableRateSixMonthLIBORMember" name="DebtInstrumentVariableRateSixMonthLIBORMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" name="DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ThroughMaturityMember" name="ThroughMaturityMember" 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_AccruedJobLosses" name="AccruedJobLosses" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" name="SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" 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_OmnibusIncentivePlan2017Member" name="OmnibusIncentivePlan2017Member" 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_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" name="CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_EmployeeMedicalPlanThreeMember" name="EmployeeMedicalPlanThreeMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" 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_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" name="ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ReceivableDueTerm" name="ReceivableDueTerm" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_PaymentsReceivedTerm" name="PaymentsReceivedTerm" nillable="true" type="xbrli:durationItemType" 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_AmendedSeniorRevolvingCreditFacilityMember" name="AmendedSeniorRevolvingCreditFacilityMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" 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_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" name="CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_IndustrialPropertyCustomerMember" name="IndustrialPropertyCustomerMember" 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_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" name="WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BilledContractReceivablesContractsInProgress" name="BilledContractReceivablesContractsInProgress" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_CumulativeNumberOfCompaniesAcquired" name="CumulativeNumberOfCompaniesAcquired" nillable="true" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" 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_ElectricalServicesMember" name="ElectricalServicesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" name="BusinessCombinationConsiderationTransferredContingentEarnOut" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" name="BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_MechanicalServicesIndustryMember" name="MechanicalServicesIndustryMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ElectricalServicesIndustryMember" name="ElectricalServicesIndustryMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" 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_GainRecordedAsReductionInCostOfServicesExpense" name="GainRecordedAsReductionInCostOfServicesExpense" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_InsuranceRecoveryPolicyPolicyTextBlock" name="InsuranceRecoveryPolicyPolicyTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_TermLoanMember" name="TermLoanMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" name="RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" name="StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DeferredTaxAssetsLeaseLiability" name="DeferredTaxAssetsLeaseLiability" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_MechanicalServicesMember" name="MechanicalServicesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_GainRecordedAsReductionInSga" name="GainRecordedAsReductionInSga" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_IncomeTaxReconciliationSection179dDeduction" name="IncomeTaxReconciliationSection179dDeduction" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" name="IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_PaymentsOfFinancingCostsTermLoan" name="PaymentsOfFinancingCostsTermLoan" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ServicesActivityMember" name="ServicesActivityMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ConstructionActivitiesMember" name="ConstructionActivitiesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ReclassificationOfAllowanceForCreditLosses" name="ReclassificationOfAllowanceForCreditLosses" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ElectricalContractorNorthCarolinaMember" name="ElectricalContractorNorthCarolinaMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" 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_CostsInExcessOfBillingsAllowanceForCreditLosses" name="CostsInExcessOfBillingsAllowanceForCreditLosses" 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_PercentageOfFairValuesInExcessOfCarryingValue" name="PercentageOfFairValuesInExcessOfCarryingValue" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_TasEnergyIncMember" name="TasEnergyIncMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DerivativeNetLossOnDerivative" name="DerivativeNetLossOnDerivative" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_DerivativeInstrumentNotionalAmount" name="DerivativeInstrumentNotionalAmount" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_TaxYears2016To2018Member" name="TaxYears2016To2018Member" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_TECIndustrialConstructionAndMaintenanceMember" name="TECIndustrialConstructionAndMaintenanceMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_InterestExpenseOnInterestRateSwaps" name="InterestExpenseOnInterestRateSwaps" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_CustomerMember" name="CustomerMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_LossContingencyLetterOfIntentUnderDisputeNumber" name="LossContingencyLetterOfIntentUnderDisputeNumber" nillable="true" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_ConstructionContractorRetainagePayable" name="ConstructionContractorRetainagePayable" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_LossContingencyDamagesStatedValue" name="LossContingencyDamagesStatedValue" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_MechanicalContractorUtahMember" name="MechanicalContractorUtahMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration" xmlns="http://www.w3.org/2001/XMLSchema" />
  <element id="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit" xmlns="http://www.w3.org/2001/XMLSchema" />
  <xsd:element name="AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" id="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="NumberOfMilestoneEarnings" id="fix_NumberOfMilestoneEarnings" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" />
  <xsd:element name="MepHoldingCo.IncMember" id="fix_MepHoldingCo.IncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MechanicalContractorKentuckyMember" id="fix_MechanicalContractorKentuckyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="MechanicalContractorIndianaMember" id="fix_MechanicalContractorIndianaMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="IveyMechanicalCompanyLlcMember" id="fix_IveyMechanicalCompanyLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="InterestIncomeOnIncomeTaxRefundsNet" id="fix_InterestIncomeOnIncomeTaxRefundsNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="credit" />
  <xsd:element name="ShareBasedCompensationExercisePriceRangeOneMember" id="fix_ShareBasedCompensationExercisePriceRangeOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ShareBasedCompensationExercisePriceRangeTwoMember" id="fix_ShareBasedCompensationExercisePriceRangeTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ShareBasedCompensationExercisePriceRangeThreeMember" id="fix_ShareBasedCompensationExercisePriceRangeThreeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ResearchAndDevelopmentTaxCreditAnd179DeductionMember" id="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" 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>11
<FILENAME>fix-20211231_cal.xml
<DESCRIPTION>EX-101.CAL
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8042.36810 -->
<!--Based on XBRL 2.1-->
<!--Created on: 2/23/2022 9:26:59 PM-->
<!--Modified on: 2/23/2022 9:26:59 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-20211231.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDetailOfOtherCurrentLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsFuturePaymentsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesProvisionDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesReconciliationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityNumberOfSharesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent_637812484139543147" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637812484139543147" order="1" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BilledContractReceivables" xlink:label="us-gaap_BilledContractReceivables_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_BilledContractReceivables_637812484139543147" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_UnbilledContractsReceivable_637812484139543147" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="us-gaap_NontradeReceivablesCurrent_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_NontradeReceivablesCurrent_637812484139543147" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_InventoryNet_637812484139543147" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_637812484139543147" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_637812484139543147" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637812484139543147" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637812484139553143" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637812484139553143" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637812484139553143" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill_637812484139553143" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637812484139553143" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637812484139553143" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637812484139553143" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent_637812484139553143" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_637812484139563128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities_637812484139563128" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_637812484139563128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637812484139563128" xlink:to="us-gaap_LiabilitiesCurrent_637812484139563128" order="1" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_637812484139563128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_LongTermDebtCurrent_637812484139563128" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637812484139563128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_AccountsPayableCurrent_637812484139563128" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637812484139563128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637812484139563128" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637812484139573136" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_SelfInsuranceReserveCurrent_637812484139573136" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637812484139563128" xlink:to="us-gaap_OtherLiabilitiesCurrent_637812484139573136" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637812484139563128" xlink:to="us-gaap_LongTermDebtNoncurrent_637812484139573136" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637812484139563128" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484139573136" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484139573136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637812484139563128" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484139573136" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637812484139563128" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_637812484139583129" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity_637812484139583129" order="2" use="optional" weight="1" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637812484139583129" xlink:to="us-gaap_PreferredStockValue_637812484139583129" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637812484139583129" xlink:to="us-gaap_CommonStockValue_637812484139583129" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637812484139583129" xlink:to="us-gaap_TreasuryStockValue_637812484139583129" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_637812484139583129" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637812484139583129" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637812484139583129" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_637812484139593125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637812484139583129" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637812484139593125" order="5" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484139593125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484139593125" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_637812484139593125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484139593125" xlink:to="us-gaap_OperatingIncomeLoss_637812484139593125" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_637812484139593125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_637812484139593125" xlink:to="us-gaap_GrossProfit_637812484139593125" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_637812484139593125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_637812484139593125" xlink:to="us-gaap_Revenues_637812484139593125" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_637812484139593125" xlink:to="us-gaap_CostOfRevenue_637812484139603133" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_637812484139593125" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_637812484139603133" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_637812484139593125" xlink:to="us-gaap_GainLossOnDispositionOfAssets_637812484139603133" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484139593125" xlink:to="us-gaap_NonoperatingIncomeExpense_637812484139603133" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_637812484139603133" xlink:to="us-gaap_InvestmentIncomeInterest_637812484139603133" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_637812484139603133" xlink:to="us-gaap_InterestExpense_637812484139603133" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484139603133" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_637812484139603133" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484139603133" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense_637812484139603133" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_637812484139613138" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484139613138" order="2" use="optional" weight="-1" priority="7" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00400 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_637812484139613138" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_637812484139613138" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_637812484139613138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_637812484139613138" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_637812484139623136" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_637812484139623136" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637812484139623136" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInInventories_637812484139623136" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637812484139623136" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_ShareBasedCompensation_637812484139623136" order="9" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484139623136" order="10" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_637812484139623136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_637812484139623136" order="11" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_AmortizationOfFinancingCosts_637812484139633130" order="12" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637812484139633130" order="13" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_637812484139633130" order="14" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ChangeInRightOfUseAssets" xlink:label="fix_ChangeInRightOfUseAssets_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="fix_ChangeInRightOfUseAssets_637812484139633130" order="15" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_Depreciation_637812484139633130" order="16" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637812484139633130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637812484139633130" order="17" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484139613138" xlink:to="us-gaap_ProfitLoss_637812484139643125" order="18" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637812484139643125" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" xlink:to="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_637812484139643125" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_637812484139643125" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484139643125" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484139643125" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_637812484139653120" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit_637812484139653120" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_637812484139653120" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit_637812484139653120" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfSeniorDebt" xlink:label="us-gaap_RepaymentsOfSeniorDebt_637812484139653120" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_RepaymentsOfSeniorDebt_637812484139653120" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt_637812484139653120" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_RepaymentsOfOtherDebt_637812484139653120" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments_637812484139653120" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_FinanceLeasePrincipalPayments_637812484139653120" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts_637812484139663122" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_PaymentsOfFinancingCosts_637812484139663122" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_637812484139663122" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_PaymentsOfDividendsCommonStock_637812484139663122" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484139663122" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484139663122" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_637812484139663122" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_637812484139663122" order="9" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_637812484139663122" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_637812484139663122" order="10" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredAcquisitionPayments" xlink:label="fix_DeferredAcquisitionPayments_637812484139673126" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="fix_DeferredAcquisitionPayments_637812484139673126" order="11" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637812484139673126" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484139643125" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637812484139673126" order="12" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2" xlink:type="extended" xlink:title="40207 - Disclosure - Summary of Significant Accounting Policies - Leases (Details) Calc2" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637812484139673126" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_OperatingLeaseLiability_637812484139673126" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637812484139673126" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637812484139673126" order="2" use="optional" weight="1" priority="3" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484139683139" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484139683139" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484139683139" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484139683139" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_637812484139683139" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_637812484139683139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_637812484139683139" order="1" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_637812484139693135" order="2" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_637812484139693135" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_637812484139693135" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_637812484139693135" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_637812484139693135" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_637812484139693135" order="7" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_637812484139693135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_637812484139693135" order="8" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_637812484139703128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_637812484139703128" order="9" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_637812484139703128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_637812484139703128" order="10" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484139703128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484139703128" order="11" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_637812484139703128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_637812484139703128" order="12" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637812484139703128" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637812484139703128" order="13" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_Goodwill_637812484139713135" order="14" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="40602 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637812484139713135" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637812484139713135" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637812484139713135" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637812484139713135" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637812484139713135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637812484139713135" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637812484139723176" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637812484139723176" order="6" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40701 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_637812484139723176" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637812484139723176" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637812484139723176" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637812484139723176" order="2" use="optional" weight="-1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Detail of Other Current Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_637812484139723176" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent_637812484139723176" order="1" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_637812484139723176" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_637812484139723176" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637812484139733138" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LiabilitiesDueToFormerOwnersCurrent" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="fix_LiabilitiesDueToFormerOwnersCurrent_637812484139733138" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherSundryLiabilitiesCurrent" xlink:label="us-gaap_OtherSundryLiabilitiesCurrent_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_OtherSundryLiabilitiesCurrent_637812484139733138" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_637812484139733138" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AccruedJobLosses" xlink:label="fix_AccruedJobLosses_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="fix_AccruedJobLosses_637812484139733138" order="7" use="optional" weight="1" priority="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails" xlink:type="extended" xlink:title="40902 - Disclosure - Debt Obligations - Future Payments (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtAndCapitalLeaseObligations" xlink:label="us-gaap_DebtAndCapitalLeaseObligations" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_637812484139733138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtAndCapitalLeaseObligations" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_637812484139733138" order="1" use="optional" weight="1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtAndCapitalLeaseObligations" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_637812484139743136" order="2" use="optional" weight="1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtAndCapitalLeaseObligations" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484139743136" order="3" use="optional" weight="1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtAndCapitalLeaseObligations" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484139743136" order="4" use="optional" weight="1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfFinancingCostsAndDiscounts" xlink:label="us-gaap_AmortizationOfFinancingCostsAndDiscounts_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_AmortizationOfFinancingCostsAndDiscounts_637812484139743136" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts" xlink:label="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_637812484139743136" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpenseRelatedParty" xlink:label="us-gaap_InterestExpenseRelatedParty_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpenseRelatedParty_637812484139743136" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense_637812484139743136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_FinanceLeaseInterestExpense_637812484139743136" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestExpenseOnInterestRateSwaps" xlink:label="fix_InterestExpenseOnInterestRateSwaps_637812484139753136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="fix_InterestExpenseOnInterestRateSwaps_637812484139753136" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LetterOfCreditFeesAmount" xlink:label="fix_LetterOfCreditFeesAmount_637812484139753136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InterestExpense" xlink:to="fix_LetterOfCreditFeesAmount_637812484139753136" order="6" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41002 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637812484139753136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637812484139753136" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484139753136" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484139753136" order="2" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="41003 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637812484139763141" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637812484139763141" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637812484139763141" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637812484139763141" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637812484139763141" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637812484139763141" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637812484139763141" order="6" use="optional" weight="1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Income Taxes - Provision (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484139773139" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484139773139" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_637812484139773139" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484139773139" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_637812484139773139" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484139773139" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484139773139" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637812484139773139" order="1" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484139773139" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_637812484139773139" order="2" use="optional" weight="1" priority="3" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xlink:type="extended" xlink:title="41102 - Disclosure - Income Taxes - Reconciliation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637812484139773139" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637812484139773139" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637812484139783135" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense_637812484139783135" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_637812484139783135" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484139783135" order="5" use="optional" weight="-1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_637812484139783135" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxContingencies" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationTaxContingencies_637812484139783135" order="7" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_637812484139783135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_637812484139783135" order="8" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeduction" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="fix_IncomeTaxReconciliationSection179dDeduction_637812484139793130" order="9" use="optional" weight="-1" priority="2" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" xlink:type="extended" xlink:title="41104 - Disclosure - Income Taxes - Deferred Tax Assets (Liabilities) (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsNet_637812484139793130" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsGross_637812484139793130" order="1" use="optional" weight="1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_637812484139793130" order="1" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637812484139793130" order="2" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_637812484139793130" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_637812484139793130" order="3" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637812484139803138" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxAssetsLeaseLiability" xlink:label="fix_DeferredTaxAssetsLeaseLiability_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="fix_DeferredTaxAssetsLeaseLiability_637812484139803138" order="5" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_637812484139803138" order="6" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsOther_637812484139803138" order="7" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet_637812484139793130" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_637812484139803138" order="2" use="optional" weight="-1" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" order="2" use="optional" weight="-1" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637812484139803138" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637812484139803138" order="1" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesLeasingArrangements" xlink:label="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_637812484139813134" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_637812484139813134" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxLiabilitiesLongTermContracts" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts_637812484139813134" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="fix_DeferredTaxLiabilitiesLongTermContracts_637812484139813134" order="3" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_637812484139813134" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_637812484139813134" order="4" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637812484139813134" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637812484139813134" order="5" use="optional" weight="1" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_637812484139813134" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637812484139803138" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_637812484139813134" order="6" use="optional" weight="1" priority="3" />
  </calculationLink>
  <calculationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xlink:type="extended" xlink:title="41403 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637812484139823135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637812484139823135" order="1" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_637812484139823135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_637812484139823135" order="2" use="optional" weight="1" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484139823135" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484139823135" order="3" use="optional" weight="1" priority="2" />
  </calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>12
<FILENAME>fix-20211231_def.xml
<DESCRIPTION>EX-101.DEF
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8042.36810 -->
<!--Based on XBRL 2.1-->
<!--Created on: 2/23/2022 9:26:59 PM-->
<!--Modified on: 2/23/2022 9:26:59 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-20211231.xsd#StatementConsolidatedStatementsOfStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureBusinessAndOrganizationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDefaultDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsContingentEarnOutObligationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsOtherAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesReconciliationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesProvisionChangesExaminationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityIncentiveAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationStockOptionActivityDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationStockOptionPlanActivityDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationFairValueAssumptionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.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-20211231.xsd#DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="simple" />
  <roleRef xlink:type="simple" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="2" 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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1" xlink:title="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis_1" xlink:title="fix_DebtCovenantRatioAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.xsd#fix_DebtCovenantEffectiveDateAxis" xlink:label="fix_DebtCovenantEffectiveDateAxis_1" xlink:title="fix_DebtCovenantEffectiveDateAxis_1" />
    <link:loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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:definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xlink:type="extended" xlink:title="00300 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" />
    <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_TreasuryStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" />
    <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_TreasuryStockShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:to="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xlink:to="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="30503 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/DisclosureStockBasedCompensationTables" xlink:type="extended" xlink:title="31503 - Disclosure - Stock-Based Compensation (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <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_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" />
    <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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails" xlink:type="extended" xlink:title="40101 - Disclosure - Business and Organization (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationTable" xlink:label="fix_ScheduleOfBusinessAndOrganizationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="fix_ScheduleOfBusinessAndOrganizationTable" xlink:to="srt_ProductOrServiceAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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-20211231.xsd#fix_SystemInstallationInNewlyConstructedFacilitiesMember" xlink:label="fix_SystemInstallationInNewlyConstructedFacilitiesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_SystemInstallationInNewlyConstructedFacilitiesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MaintenanceRepairAndReplacementServiceMember" xlink:label="fix_MaintenanceRepairAndReplacementServiceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_MaintenanceRepairAndReplacementServiceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:label="fix_ScheduleOfBusinessAndOrganizationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:to="fix_ScheduleOfBusinessAndOrganizationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueServicesNetPercentage" xlink:label="fix_SalesRevenueServicesNetPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:to="fix_SalesRevenueServicesNetPercentage" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" xlink:type="extended" xlink:title="40203 - Disclosure - Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="srt_ProductOrServiceAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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-20211231.xsd#fix_ServicesActivityMember" xlink:label="fix_ServicesActivityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_ServicesActivityMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ConstructionActivitiesMember" xlink:label="fix_ConstructionActivitiesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_ConstructionActivitiesMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductAndServiceOtherMember" xlink:label="us-gaap_ProductAndServiceOtherMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductAndServiceOtherMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" xlink:label="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AllowanceForDoubtfulAccountsReceivableAcquired" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="fix_AllowanceForDoubtfulAccountsReceivableAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReclassificationOfAllowanceForCreditLosses" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="fix_ReclassificationOfAllowanceForCreditLosses" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" xlink:type="extended" xlink:title="40205 - Disclosure - Summary of Significant Accounting Policies and Estimates - Risk (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueMember" xlink:label="fix_SalesRevenueMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="fix_SalesRevenueMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ConcentrationRiskTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StandardProductWarrantyDisclosureAbstract" xlink:label="us-gaap_StandardProductWarrantyDisclosureAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_StandardProductWarrantyDisclosureAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WarrantyPeriodOfLaborAfterServicing" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_StandardProductWarrantyDisclosureAbstract" xlink:to="fix_WarrantyPeriodOfLaborAfterServicing" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xlink:type="extended" xlink:title="40302 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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-20211231.xsd#fix_MechanicalServicesMember" xlink:label="fix_MechanicalServicesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_MechanicalServicesMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesMember" xlink:label="fix_ElectricalServicesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="fix_ElectricalServicesMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_MajorCustomersAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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-20211231.xsd#fix_IndustrialPropertyCustomerMember" xlink:label="fix_IndustrialPropertyCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_IndustrialPropertyCustomerMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EducationMember" xlink:label="fix_EducationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_EducationMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_OfficeBuildingCustomerMember" xlink:label="fix_OfficeBuildingCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_OfficeBuildingCustomerMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GovernmentCustomerMember" xlink:label="fix_GovernmentCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_GovernmentCustomerMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MultiFamilyAndResidentialMember" xlink:label="fix_MultiFamilyAndResidentialMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="fix_MultiFamilyAndResidentialMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCustomerMember" xlink:label="us-gaap_OtherCustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="us-gaap_OtherCustomerMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="40303 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" xlink:label="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:to="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:to="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:to="us-gaap_ChangeInContractWithCustomerAssetAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" xlink:label="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:to="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:to="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:to="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xlink:type="extended" xlink:title="40304 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" />
    <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_DerivativeInstrumentRiskAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_InterestRateSwapMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" />
    <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_FairValueByMeasurementFrequencyAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsNonrecurringMember" xlink:label="us-gaap_FairValueMeasurementsNonrecurringMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsNonrecurringMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <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_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis" />
    <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_FairValueByLiabilityClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueByMeasurementBasisAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="6" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_HedgingDesignationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" xlink:label="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="7" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_DerivativeInstrumentNotionalAmount" xlink:label="fix_DerivativeInstrumentNotionalAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_DerivativeInstrumentNotionalAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DerivativeNetLossOnDerivative" xlink:label="fix_DerivativeNetLossOnDerivative" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_DerivativeNetLossOnDerivative" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure" />
    <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_CashAndCashEquivalentsFairValueDisclosure" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashSurrenderValueFairValueDisclosure" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_CashSurrenderValueFairValueDisclosure" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="us-gaap_DerivativeFairValueOfDerivativeLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_DerivativeFairValueOfDerivativeLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_LifeInsuranceContractsNumberOfEmployeesCovered" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LifeInsuranceContractsFaceAmount" xlink:label="fix_LifeInsuranceContractsFaceAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="fix_LifeInsuranceContractsFaceAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashSurrenderValueOfLifeInsurance" xlink:label="us-gaap_CashSurrenderValueOfLifeInsurance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_CashSurrenderValueOfLifeInsurance" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WeightedAverageCostOfCapital" xlink:label="fix_WeightedAverageCostOfCapital" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" />
    <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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" />
    <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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" />
    <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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_GoodwillImpairmentLoss" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" 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/2021/elts/us-gaap-2021-01-31.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_BusinessCombinationConsiderationTransferredAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <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_BusinessCombinationConsiderationTransferred1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xlink:type="extended" xlink:title="40502 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails" xlink:type="extended" xlink:title="40503 - Disclosure - Acquisitions - Contingent Earn-out Obligation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_StateAndLocalJurisdictionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_MeasurementInputTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_NumberOfMilestoneEarnings" xlink:label="fix_NumberOfMilestoneEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_NumberOfMilestoneEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_BusinessAcquisitionLineItems" xlink:to="us-gaap_Revenues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" />
    <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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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_BusinessAcquisitionLineItems" xlink:to="fix_CashFlowDiscountRate" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xlink:type="extended" xlink:title="40504 - Disclosure - Acquisitions - Other Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_MepHoldingCo.IncMember" xlink:label="fix_MepHoldingCo.IncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MepHoldingCo.IncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorKentuckyMember" xlink:label="fix_MechanicalContractorKentuckyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MechanicalContractorKentuckyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorIndianaMember" xlink:label="fix_MechanicalContractorIndianaMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MechanicalContractorIndianaMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IveyMechanicalCompanyLlcMember" xlink:label="fix_IveyMechanicalCompanyLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_IveyMechanicalCompanyLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TasEnergyIncMember" xlink:label="fix_TasEnergyIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_TasEnergyIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TECIndustrialConstructionAndMaintenanceMember" xlink:label="fix_TECIndustrialConstructionAndMaintenanceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_TECIndustrialConstructionAndMaintenanceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalContractorNorthCarolinaMember" xlink:label="fix_ElectricalContractorNorthCarolinaMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_ElectricalContractorNorthCarolinaMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorUtahMember" xlink:label="fix_MechanicalContractorUtahMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MechanicalContractorUtahMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="us-gaap_NumberOfBusinessesAcquired" />
    <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_NumberOfBusinessesAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <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_BusinessCombinationConsiderationTransferred1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContingentEarnOutObligationToAcquireBusiness" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="fix_ContingentEarnOutObligationToAcquireBusiness" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xlink:type="extended" xlink:title="40601 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_MechanicalServicesIndustryMember" xlink:label="fix_MechanicalServicesIndustryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_MechanicalServicesIndustryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesIndustryMember" xlink:label="fix_ElectricalServicesIndustryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ElectricalServicesIndustryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillOtherIncreaseDecrease" xlink:label="us-gaap_GoodwillOtherIncreaseDecrease" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_GoodwillRollForward" xlink:to="us-gaap_GoodwillOtherIncreaseDecrease" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" xlink:label="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_GoodwillRollForward" xlink:to="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="40602 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" xlink:label="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
    <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_FiniteLivedIntangibleAssetUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <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_FiniteLivedIntangibleAssetsGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="dei_EntityDomain" xlink:to="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetImpairmentChargesAbstract" xlink:label="us-gaap_AssetImpairmentChargesAbstract" />
    <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_AssetImpairmentChargesAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AssetImpairmentChargesAbstract" xlink:to="us-gaap_GoodwillImpairmentLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AssetImpairmentChargesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfFairValuesInExcessOfCarryingValue" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AssetImpairmentChargesAbstract" xlink:to="fix_PercentageOfFairValuesInExcessOfCarryingValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AssetImpairmentChargesAbstract" xlink:to="us-gaap_Goodwill" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40701 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LandMember" xlink:label="us-gaap_LandMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LandMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TransportationEquipmentMember" xlink:label="us-gaap_TransportationEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_TransportationEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ComputerAndTelephoneEquipmentMember" xlink:label="fix_ComputerAndTelephoneEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="fix_ComputerAndTelephoneEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BuildingAndLeaseholdImprovementsMember" xlink:label="fix_BuildingAndLeaseholdImprovementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="fix_BuildingAndLeaseholdImprovementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ConstructionInProgressMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_DepreciationAndAmortization" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Debt Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_DebtInstrumentNameDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TermLoanMember" xlink:label="fix_TermLoanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_TermLoanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableMember" xlink:label="us-gaap_LoansPayableMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_SubordinateDebtAndPromissoryNoteMember" xlink:to="us-gaap_LoansPayableMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_DebtInstrumentLineItems" xlink:to="us-gaap_NotesAndLoansPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" />
    <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_FinanceLeaseLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount" />
    <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_DebtLongtermAndShorttermCombinedAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" />
    <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_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" />
    <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_LongTermDebt" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" />
    <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_LongTermDebtCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" />
    <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_LongTermDebtNoncurrent" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xlink:type="extended" xlink:title="40903 - Disclosure - Debt Obligations - Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_DebtInstrumentNameDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmendedSeniorRevolvingCreditFacilityMember" xlink:label="fix_AmendedSeniorRevolvingCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_AmendedSeniorRevolvingCreditFacilityMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TermLoanMember" xlink:label="fix_TermLoanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="fix_TermLoanMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableMember" xlink:label="us-gaap_LoansPayableMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_SubordinateDebtAndPromissoryNoteMember" xlink:to="us-gaap_LoansPayableMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_LetterOfCreditMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotesPayableOtherPayablesMember" xlink:label="us-gaap_NotesPayableOtherPayablesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_NotesPayableOtherPayablesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" />
    <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_VariableRateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_DebtInstrumentVariableRateBaseRateMember" xlink:label="fix_DebtInstrumentVariableRateBaseRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_VariableRateDomain" xlink:to="fix_DebtInstrumentVariableRateBaseRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember" />
    <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_EurodollarMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateFederalFundsRateMember" xlink:label="fix_DebtInstrumentVariableRateFederalFundsRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:to="fix_DebtInstrumentVariableRateFederalFundsRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" xlink:label="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:to="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateOneMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateOneMonthLIBORMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:to="fix_DebtInstrumentVariableRateOneMonthLIBORMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSixMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateSixMonthLIBORMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:to="fix_DebtInstrumentVariableRateSixMonthLIBORMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="6" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="srt_StatementScenarioAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScenarioCovenantRequirementMember" xlink:label="fix_ScenarioCovenantRequirementMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="fix_ScenarioCovenantRequirementMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateAxis" xlink:label="fix_DebtCovenantEffectiveDateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="7" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="fix_DebtCovenantEffectiveDateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateDomain" xlink:label="fix_DebtCovenantEffectiveDateDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="fix_DebtCovenantEffectiveDateAxis" xlink:to="fix_DebtCovenantEffectiveDateDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ThroughMaturityMember" xlink:label="fix_ThroughMaturityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_DebtCovenantEffectiveDateDomain" xlink:to="fix_ThroughMaturityMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="8" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_MepHoldingCo.IncMember" xlink:label="fix_MepHoldingCo.IncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_MepHoldingCo.IncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IveyMechanicalCompanyLlcMember" xlink:label="fix_IveyMechanicalCompanyLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_IveyMechanicalCompanyLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfSeniorDebt" xlink:label="us-gaap_RepaymentsOfSeniorDebt" />
    <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_RepaymentsOfSeniorDebt" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts" />
    <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_PaymentsOfFinancingCosts" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PaymentsOfFinancingCostsTermLoan" xlink:label="fix_PaymentsOfFinancingCostsTermLoan" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_PaymentsOfFinancingCostsTermLoan" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" />
    <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_LineOfCredit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount" />
    <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_DebtLongtermAndShorttermCombinedAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" />
    <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_LettersOfCreditOutstandingAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" xlink:label="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:to="us-gaap_ProfitLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:to="us-gaap_DepreciationAndAmortization" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:to="us-gaap_ShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentFinancialCovenantsAbstract" xlink:label="fix_DebtInstrumentFinancialCovenantsAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_DebtInstrumentFinancialCovenantsAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentInterestRateOptionsNumber" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentInterestRateOptionsNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantLeverageRatio" xlink:label="fix_DebtInstrumentCovenantLeverageRatio" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantLeverageRatio" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantFixedChargeCoverageRatio" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantFixedChargeCoverageRatio" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MarketRatesAbstract" xlink:label="fix_MarketRatesAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_MarketRatesAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" xlink:label="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_MarketRatesAbstract" xlink:to="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentMarketRate" xlink:label="fix_DebtInstrumentMarketRate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_MarketRatesAbstract" xlink:to="fix_DebtInstrumentMarketRate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" 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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_LetterOfCreditFeesPercentage" xlink:label="fix_LetterOfCreditFeesPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="fix_LetterOfCreditFeesPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="21" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtOtherDisclosuresAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CumulativeNumberOfCompaniesAcquired" xlink:label="fix_CumulativeNumberOfCompaniesAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:to="fix_CumulativeNumberOfCompaniesAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_LongTermDebtOtherDisclosuresAbstract" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="us-gaap_NumberOfBusinessesAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="22" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_NumberOfBusinessesAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="23" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="24" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_FinanceLeaseLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" />
    <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_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_VariableLeaseAndShortTermLeaseCost" xlink:label="fix_VariableLeaseAndShortTermLeaseCost" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
    <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_OperatingLeaseWeightedAverageDiscountRatePercent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" />
    <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_LesseeOperatingLeaseTermOfContract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_NumberOfOptionsToRenew" xlink:label="fix_NumberOfOptionsToRenew" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <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_OperatingLeaseWeightedAverageRemainingLeaseTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRent" xlink:label="us-gaap_PaymentsForRent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xlink:type="extended" xlink:title="41102 - Disclosure - Income Taxes - Reconciliation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioForecastMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
    <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_EffectiveIncomeTaxRateContinuingOperations" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxContingencies" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationTaxContingencies" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeduction" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="fix_IncomeTaxReconciliationSection179dDeduction" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestIncomeOnIncomeTaxRefundsNet" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="fix_InterestIncomeOnIncomeTaxRefundsNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails" xlink:type="extended" xlink:title="41103 - Disclosure - Income Taxes - Provision Changes, Examination (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationTable" xlink:label="us-gaap_IncomeTaxExaminationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_IncomeTaxExaminationTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" xlink:label="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_IncomeTaxExaminationTable" xlink:to="us-gaap_TaxPeriodAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2016Member" xlink:label="us-gaap_TaxYear2016Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxYear2016Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2017Member" xlink:label="us-gaap_TaxYear2017Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxYear2017Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2018Member" xlink:label="us-gaap_TaxYear2018Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxYear2018Member" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TaxYears2016To2018Member" xlink:label="fix_TaxYears2016To2018Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="fix_TaxYears2016To2018Member" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_IncomeTaxExaminationTable" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_InternalRevenueServiceIRSMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationLineItems" xlink:label="us-gaap_IncomeTaxExaminationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_IncomeTaxExaminationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" xlink:label="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_IncomeTaxExaminationLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" xlink:type="extended" xlink:title="41105 - Disclosure - Income Taxes - Loss Carryforwards and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="us-gaap_OperatingLossCarryforwardsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_OperatingLossCarryforwardsTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_StateAndLocalJurisdictionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_OperatingLossCarryforwardsTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:label="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_DeferredTaxAssetsNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_UnrecognizedTaxBenefits" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" xlink:type="extended" xlink:title="41301 - Disclosure - Commitments and Contingencies - Other and Bonds (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LossContingenciesTable" xlink:to="srt_CounterpartyNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerMember" xlink:label="fix_CustomerMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="fix_CustomerMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceGuaranteeMember" xlink:label="us-gaap_PerformanceGuaranteeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_PerformanceGuaranteeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="us-gaap_LitigationStatusAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LitigationStatusAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="us-gaap_LitigationStatusDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_LitigationStatusAxis" xlink:to="us-gaap_LitigationStatusDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PendingLitigationMember" xlink:label="us-gaap_PendingLitigationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LitigationStatusDomain" xlink:to="us-gaap_PendingLitigationMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_LossContingenciesTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_LossContingencyLetterOfIntentUnderDisputeNumber" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_LossContingencyLetterOfIntentUnderDisputeNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingencyDamagesSoughtValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencyDamagesStatedValue" xlink:label="fix_LossContingencyDamagesStatedValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_LossContingencyDamagesStatedValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencySuretyAbstract" xlink:label="fix_LossContingencySuretyAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_LossContingencySuretyAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.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/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Commitments and Contingencies - Self-Insurance (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" />
    <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_LossContingenciesByNatureOfContingencyAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_WorkersCompensationMember" xlink:label="fix_WorkersCompensationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="fix_WorkersCompensationMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:label="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityMember" xlink:label="fix_EmployersLiabilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:to="fix_EmployersLiabilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralLiabilityMember" xlink:label="us-gaap_GeneralLiabilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:to="us-gaap_GeneralLiabilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AutoLiabilityMember" xlink:label="fix_AutoLiabilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:to="fix_AutoLiabilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalMember" xlink:label="fix_EmployeeMedicalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="fix_EmployeeMedicalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanOneMember" xlink:label="fix_EmployeeMedicalPlanOneMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_EmployeeMedicalMember" xlink:to="fix_EmployeeMedicalPlanOneMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanTwoMember" xlink:label="fix_EmployeeMedicalPlanTwoMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_EmployeeMedicalMember" xlink:to="fix_EmployeeMedicalPlanTwoMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanThreeMember" xlink:label="fix_EmployeeMedicalPlanThreeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_EmployeeMedicalMember" xlink:to="fix_EmployeeMedicalPlanThreeMember" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_LossContingenciesTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerIncident" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_SelfInsuranceDeductibleAmountPerIncident" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceNumberOfMedicalPlans" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_SelfInsuranceNumberOfMedicalPlans" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xlink:type="extended" xlink:title="41401 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_EquityIncentivePlan2012Member" xlink:label="fix_EquityIncentivePlan2012Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="fix_EquityIncentivePlan2012Member" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_OmnibusIncentivePlan2017Member" xlink:label="fix_OmnibusIncentivePlan2017Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PlanNameDomain" xlink:to="fix_OmnibusIncentivePlan2017Member" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockRepurchaseProgram2007Member" xlink:label="fix_StockRepurchaseProgram2007Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PlanNameDomain" xlink:to="fix_StockRepurchaseProgram2007Member" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:to="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" />
    <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_TreasuryStockSharesAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock" />
    <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_PaymentsForRepurchaseOfCommonStock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" xlink:type="extended" xlink:title="41402 - Disclosure - Stockholders' Equity - Anti-Dilutive Stock Options (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Stock-Based Compensation - Stock Option Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <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_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" />
    <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_AllocatedShareBasedCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails" xlink:type="extended" xlink:title="41502 - Disclosure - Stock-Based Compensation - Stock Option Plan Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeOneMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeOneMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="fix_ShareBasedCompensationExercisePriceRangeOneMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeTwoMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeTwoMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="fix_ShareBasedCompensationExercisePriceRangeTwoMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeThreeMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeThreeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="fix_ShareBasedCompensationExercisePriceRangeThreeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:label="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails" xlink:type="extended" xlink:title="41503 - Disclosure - Stock-Based Compensation - Fair Value Assumptions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <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_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RestrictedStockAndRestrictedStockUnitsRSUMember" xlink:label="fix_RestrictedStockAndRestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="fix_RestrictedStockAndRestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TypesOfPerformanceStockUnits" xlink:label="fix_TypesOfPerformanceStockUnits" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_TypesOfPerformanceStockUnits" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PerformanceMultiplierForDollarDenominatedAwardGranted" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_PerformanceMultiplierForDollarDenominatedAwardGranted" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Segment Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_IntersegmentEliminationMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_MechanicalServicesMember" xlink:label="fix_MechanicalServicesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_MechanicalServicesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesMember" xlink:label="fix_ElectricalServicesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentDomain" xlink:to="fix_ElectricalServicesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Assets" priority="1" use="optional" />
  </definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>13
<FILENAME>fix-20211231_lab.xml
<DESCRIPTION>EX-101.LAB
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8042.36810 -->
<!--Based on XBRL 2.1-->
<!--Created on: 2/23/2022 9:26:59 PM-->
<!--Modified on: 2/23/2022 9:26:59 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" />
  <roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" 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/2021q4/dei-2021q4.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAnnualReport_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Annual Report</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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">Entity File Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Well-known Seasoned Issuer</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Voluntary Filers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPublicFloat_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Public Float</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="dei_IcfrAuditorAttestationFlag" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_IcfrAuditorAttestationFlag" xlink:to="dei_IcfrAuditorAttestationFlag_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_IcfrAuditorAttestationFlag_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ICFR Auditor Attestation Flag</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="dei_AuditorName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorName" xlink:to="dei_AuditorName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorFirmId" xlink:to="dei_AuditorFirmId_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorFirmId_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Firm ID</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorLocation" xlink:to="dei_AuditorLocation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorLocation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Location</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 $8,808 and $9,087, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2009/role/negatedLabel" xlink:label="us-gaap_UnbilledContractsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-Unbilled accounts 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 $715 and $784, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 $503 and $759, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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, Net, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_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_ContractWithCustomerAssetNetCurrent_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_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 $84 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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax assets</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Less- Current portion</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LongTermDebtCurrent_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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2009/role/negatedLabel" 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</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_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_ContractWithCustomerLiabilityCurrent_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_ContractWithCustomerLiabilityCurrent_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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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, NET</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total long-term portion of debt, net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax liabilities</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Stockholders' 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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,032,311 and 4,935,186 shares, respectively</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Stockholders' 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Allowance For Doubtful Accounts Receivable 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-20211231.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/2009/role/negatedLabel" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-Unbilled accounts receivable credit allowance</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/2021/elts/us-gaap-2021-01-31.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">Other Receivables Allowance For Credit Loss</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="fix-20211231.xsd#fix_CostsInExcessOfBillingsAllowanceForCreditLosses" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CostsInExcessOfBillingsAllowanceForCreditLosses" xlink:to="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of allowance for credit losses on receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs in Excess Of Billings, Allowance For Credit Losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plus-Costs and estimated earnings in excess of billings credit allowance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockShares" xlink:to="us-gaap_TreasuryStockShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury Stock, Shares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_TreasuryStockShares_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_TreasuryStockShares_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_TreasuryStockShares_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/2021/elts/us-gaap-2021-01-31.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">CONSOLIDATED STATEMENTS OF OPERATIONS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_InterestExpense_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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Provision for income taxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Provision for income taxes</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/2021/elts/us-gaap-2021-01-31.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/label" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Income (Loss) Attributable to Parent</label>
    <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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Net income (loss) (in dollars per share)</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/2021/elts/us-gaap-2021-01-31.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">Net diluted income after-tax (in dollars per share)</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption, Adjustment [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockMember" xlink:to="us-gaap_TreasuryStockMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockMember_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/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 (Deficit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Stock Issued or Granted During Period, Share-based Compensation [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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Exercised (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised (in shares)</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="fix-20211231.xsd#fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xlink:to="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate value of stock related to Restricted and Performance Stock Awards issued during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Issued During Period Value Restricted And Performance Stock Award Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_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="fix-20211231.xsd#fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" xlink:to="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total number of shares issued during the period, including shares forfeited, as a result of Restricted and Performance Stock Awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Issued During Period, Shares, Restricted And Performance Stock Award Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_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/2021/elts/us-gaap-2021-01-31.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">Adjustments Related to Tax Withholding for Share-based Compensation</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 payment on vested restricted stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Shares Paid for Tax Withholding for Share Based Compensation</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 payment on vested restricted stock (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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">Provision for Doubtful Accounts</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Bad debt expense (benefit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 Financing 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/2021/elts/us-gaap-2021-01-31.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/negatedTerseLabel" 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/2021/elts/us-gaap-2021-01-31.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 Compensation</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 Assets</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capital Expenditures</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xlink:to="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Divestiture of Businesses, Net of Cash Divested</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from sale of business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfSeniorDebt" xlink:label="us-gaap_RepaymentsOfSeniorDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfSeniorDebt" xlink:to="us-gaap_RepaymentsOfSeniorDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfSeniorDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayments of Senior Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RepaymentsOfSeniorDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments on term loan</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RepaymentsOfSeniorDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments on term loan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeasePrincipalPayments" xlink:to="us-gaap_FinanceLeasePrincipalPayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FinanceLeasePrincipalPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance Lease, Principal Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_FinanceLeasePrincipalPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments on finance lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfFinancingCosts" xlink:to="us-gaap_PaymentsOfFinancingCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of Financing Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt financing costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Financing and professional cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 repurchase</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/2021/elts/us-gaap-2021-01-31.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">Payments Related to Tax Withholding for Share-based Compensation</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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 provided by (used in) financing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 Contract with Customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_BalanceSheetRelatedDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Detail of Other Current Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Balance Sheet Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Detail of Other Current Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Long-term Debt [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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Benefit Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Compensation and Employee Benefit Plans [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Benefit Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Note. Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareTextBlock_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disclosure of Compensation Related Costs, Share-based Payments [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidation, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Principles of Consolidation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryPolicyTextBlock_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Intangible Assets, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recoverability of Goodwill and Identifiable Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long Lived Assets [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Lived Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combinations Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationsPolicy_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SelfInsuranceReservePolicyTextBlock" xlink:label="us-gaap_SelfInsuranceReservePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SelfInsuranceReservePolicyTextBlock" xlink:to="us-gaap_SelfInsuranceReservePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SelfInsuranceReservePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Liabilities [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SelfInsuranceReservePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self-Insurance Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StandardProductWarrantyPolicy" xlink:label="us-gaap_StandardProductWarrantyPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StandardProductWarrantyPolicy" xlink:to="us-gaap_StandardProductWarrantyPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StandardProductWarrantyPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Standard Product Warranty, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StandardProductWarrantyPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Warranty Costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk, Credit Risk, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentrations of Credit Risk</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_InsuranceRecoveryPolicyPolicyTextBlock" xlink:label="fix_InsuranceRecoveryPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_InsuranceRecoveryPolicyPolicyTextBlock" xlink:to="fix_InsuranceRecoveryPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_InsuranceRecoveryPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disclosure of accounting policy for insurance recovery.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_InsuranceRecoveryPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Insurance Recovery, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_InsuranceRecoveryPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Insurance Recovery</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of cash paid</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of activity in allowance for credit losses</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfContractsInProgressTableTextBlock" xlink:label="fix_ScheduleOfContractsInProgressTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfContractsInProgressTableTextBlock" xlink:to="fix_ScheduleOfContractsInProgressTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfContractsInProgressTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of contracts in progress.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfContractsInProgressTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Contracts in Progress [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfContractsInProgressTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of contracts in progress</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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, Asset and Liability [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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Amteck Holdco LLC Acquisition and its wholly owned subsidiaries.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amteck</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of identifiable intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Property Plant and Equipment and Estimated Useful Lives [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accrued Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 long-term debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock" xlink:label="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock" xlink:to="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Income and Interest Expense Disclosure [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of interest expense</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfFloatingInterestRateBasesTableTextBlock" xlink:label="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock" xlink:to="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of variable rate bases and spreads related to debt covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Floating Interest Rate Bases [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of market rates relating to interest options under the Facility</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.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/2021/elts/us-gaap-2021-01-31.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, 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-20211231.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of provision for income taxes relating to continuing operations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of difference in income taxes provided for and the amounts determined by applying the federal statutory tax rate to income before income taxes results</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of significant components of the net deferred tax assets and net deferred tax liabilities as reflected on the balance sheet</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of classification of deferred tax assets and liabilities recognized in the entity's statement of financial position.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Balance Sheet Presentation of Deferred Tax Assets and Liabilities Table [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of deferred income tax assets and liabilities included in the consolidated balance sheets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Award Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Award [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restricted Stock</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Compensation, Stock Options, Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of activity under the entity's stock option plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary information about stock options outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Nonvested Share Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of information about nonvested stock option awards and changes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationTable" xlink:label="fix_ScheduleOfBusinessAndOrganizationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfBusinessAndOrganizationTable" xlink:to="fix_ScheduleOfBusinessAndOrganizationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScheduleOfBusinessAndOrganizationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of information related to the business and organization.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfBusinessAndOrganizationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business and Organization [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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">Products and Services [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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">Products and Services [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SystemInstallationInNewlyConstructedFacilitiesMember" xlink:label="fix_SystemInstallationInNewlyConstructedFacilitiesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SystemInstallationInNewlyConstructedFacilitiesMember" xlink:to="fix_SystemInstallationInNewlyConstructedFacilitiesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SystemInstallationInNewlyConstructedFacilitiesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to installation of systems in newly constructed facilities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SystemInstallationInNewlyConstructedFacilitiesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Installation of systems in newly constructed facilities</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MaintenanceRepairAndReplacementServiceMember" xlink:label="fix_MaintenanceRepairAndReplacementServiceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MaintenanceRepairAndReplacementServiceMember" xlink:to="fix_MaintenanceRepairAndReplacementServiceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MaintenanceRepairAndReplacementServiceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to maintenance, repair and replacement services.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MaintenanceRepairAndReplacementServiceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maintenance, repair and replacement services</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:label="fix_ScheduleOfBusinessAndOrganizationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:to="fix_ScheduleOfBusinessAndOrganizationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScheduleOfBusinessAndOrganizationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business and Organization [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ScheduleOfBusinessAndOrganizationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business and Organization</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueServicesNetPercentage" xlink:label="fix_SalesRevenueServicesNetPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SalesRevenueServicesNetPercentage" xlink:to="fix_SalesRevenueServicesNetPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SalesRevenueServicesNetPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The percentage of net services revenue to total net revenue from the services rendered as of the year end.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SalesRevenueServicesNetPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sales Revenue Services Net Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SalesRevenueServicesNetPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of revenue attributable to services</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CashPaidAbstract" xlink:label="fix_CashPaidAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CashPaidAbstract" xlink:to="fix_CashPaidAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CashPaidAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Paid [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CashPaidAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid for:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Paid, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InterestPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes Paid, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxesPaidNet_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accounts, Notes, Loans and Financing Receivable [Table]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ServicesActivityMember" xlink:label="fix_ServicesActivityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ServicesActivityMember" xlink:to="fix_ServicesActivityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ServicesActivityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Service activity.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ServicesActivityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Service</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ConstructionActivitiesMember" xlink:label="fix_ConstructionActivitiesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ConstructionActivitiesMember" xlink:to="fix_ConstructionActivitiesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ConstructionActivitiesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to construction activities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ConstructionActivitiesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Construction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductAndServiceOtherMember" xlink:label="us-gaap_ProductAndServiceOtherMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductAndServiceOtherMember" xlink:to="us-gaap_ProductAndServiceOtherMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductAndServiceOtherMember_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsNotesAndLoansReceivableLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts, Notes, Loans and Financing Receivable [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Allowance for Doubtful Accounts Receivable [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Activity in allowance for doubtful accounts</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at beginning of year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" xlink:label="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" xlink:to="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Change in Method, Credit Loss Expense (Reversal)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impact of new accounting standard</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Writeoff</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deductions for uncollectible receivables written off, net of recoveries</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AllowanceForDoubtfulAccountsReceivableAcquired" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_AllowanceForDoubtfulAccountsReceivableAcquired" xlink:to="fix_AllowanceForDoubtfulAccountsReceivableAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the allowance for receivables acquired in a business acquisition.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Allowance for Doubtful Accounts Receivable Acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit allowance of acquired receivables on the acquisition date</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReclassificationOfAllowanceForCreditLosses" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ReclassificationOfAllowanceForCreditLosses" xlink:to="fix_ReclassificationOfAllowanceForCreditLosses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of allowance for credit loss reclassified into other liabilities during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reclassification Of Allowance For Credit Losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reclass to other current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk Benchmark [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk Benchmark [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueMember" xlink:label="fix_SalesRevenueMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SalesRevenueMember" xlink:to="fix_SalesRevenueMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SalesRevenueMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents total revenue during the period when it serves as a benchmark in a concentration of risk calculation.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SalesRevenueMember_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer concentration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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">Range [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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">Range [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentrations of Credit Risk</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StandardProductWarrantyDisclosureAbstract" xlink:label="us-gaap_StandardProductWarrantyDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StandardProductWarrantyDisclosureAbstract" xlink:to="us-gaap_StandardProductWarrantyDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StandardProductWarrantyDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Standard Product Warranty Disclosure [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StandardProductWarrantyDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Warranty Costs</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WarrantyPeriodOfLaborAfterServicing" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_WarrantyPeriodOfLaborAfterServicing" xlink:to="fix_WarrantyPeriodOfLaborAfterServicing_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the labor warranty period after servicing of existing MEP system.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Warranty Period of Labor after Servicing</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Labor warranty period after servicing of existing MEP system</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Concentration Risk, Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Single customer, percentage of revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainOnBusinessInterruptionInsuranceRecovery" xlink:label="us-gaap_GainOnBusinessInterruptionInsuranceRecovery" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainOnBusinessInterruptionInsuranceRecovery" xlink:to="us-gaap_GainOnBusinessInterruptionInsuranceRecovery_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainOnBusinessInterruptionInsuranceRecovery_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain on Business Interruption Insurance Recovery</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GainOnBusinessInterruptionInsuranceRecovery_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain due to insurance proceeds received</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GainRecordedAsReductionInSga" xlink:label="fix_GainRecordedAsReductionInSga" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_GainRecordedAsReductionInSga" xlink:to="fix_GainRecordedAsReductionInSga_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_GainRecordedAsReductionInSga_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain recorded as reduction in SG&amp;A, amount.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_GainRecordedAsReductionInSga_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain Recorded As Reduction In Sga</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_GainRecordedAsReductionInSga_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain recorded as reduction in SG&amp;A</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GainRecordedAsReductionInCostOfServicesExpense" xlink:label="fix_GainRecordedAsReductionInCostOfServicesExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_GainRecordedAsReductionInCostOfServicesExpense" xlink:to="fix_GainRecordedAsReductionInCostOfServicesExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_GainRecordedAsReductionInCostOfServicesExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents amount of gain recorded as reduction in cost of services expense.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_GainRecordedAsReductionInCostOfServicesExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain Recorded As A Reduction In Cost Of Services Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_GainRecordedAsReductionInCostOfServicesExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain recorded as reduction in cost of services expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRecognitionAbstract" xlink:label="us-gaap_RevenueRecognitionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionAbstract" xlink:to="us-gaap_RevenueRecognitionAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue Recognition [Abstract]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesLongTermContractsOrProgramsAbstract" xlink:label="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract" xlink:to="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivables, Long-term Contracts or Programs [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contracts in progress</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivables, Long-term Contracts or Programs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs incurred on contracts in progress</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" xlink:label="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" xlink:to="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of the offset related to government or other customer advances received on a contract when the expected advances will be applied in payment to those particular charges of the receivable.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer Advances and Progress Payments for Long-term Contract or Program</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated earnings, net of losses</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BilledContractReceivablesContractsInProgress" xlink:label="fix_BilledContractReceivablesContractsInProgress" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BilledContractReceivablesContractsInProgress" xlink:to="fix_BilledContractReceivablesContractsInProgress_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BilledContractReceivablesContractsInProgress_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed contract receivables, contracts in progress.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BilledContractReceivablesContractsInProgress_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Billed Contract Receivables Contracts In Progress</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BilledContractReceivablesContractsInProgress_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-Billings to date</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContractReceivablesContractsInProcessNetReceivableLiability" xlink:label="fix_ContractReceivablesContractsInProcessNetReceivableLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ContractReceivablesContractsInProcessNetReceivableLiability" xlink:to="fix_ContractReceivablesContractsInProcessNetReceivableLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ContractReceivablesContractsInProcessNetReceivableLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the net receivable (liability), as of the balance sheet date, for contracts in process in which contracts with billings in excess of costs are netted against contracts with costs in excess of billings.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ContractReceivablesContractsInProcessNetReceivableLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Receivables Contracts in Process, Net Receivable Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="fix_ContractReceivablesContractsInProcessNetReceivableLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contracts in progress</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RetentionProvisionsConstructionContractsHoldingPeriod" xlink:label="fix_RetentionProvisionsConstructionContractsHoldingPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_RetentionProvisionsConstructionContractsHoldingPeriod" xlink:to="fix_RetentionProvisionsConstructionContractsHoldingPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_RetentionProvisionsConstructionContractsHoldingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period during which progress billings or the contract price can be withheld by customers until after the completion of work on the project.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_RetentionProvisionsConstructionContractsHoldingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retention Provisions Construction Contracts Holding Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_RetentionProvisionsConstructionContractsHoldingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period during which progress billings or contract price can be withheld until completion of work</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionContractorReceivableRetainage" xlink:label="us-gaap_ConstructionContractorReceivableRetainage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionContractorReceivableRetainage" xlink:to="us-gaap_ConstructionContractorReceivableRetainage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionContractorReceivableRetainage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Construction Contractor, Receivable, Retainage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConstructionContractorReceivableRetainage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retention receivable</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ConstructionContractorRetainagePayable" xlink:label="fix_ConstructionContractorRetainagePayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ConstructionContractorRetainagePayable" xlink:to="fix_ConstructionContractorRetainagePayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ConstructionContractorRetainagePayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amounts owed to vendors and subcontractors that have been withheld because of retainage provisions in a contract to be paid. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ConstructionContractorRetainagePayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Construction Contractor, Retainage Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ConstructionContractorRetainagePayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retention payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms" xlink:label="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms" xlink:to="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Performance Obligation, Description of Payment Terms</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Performance Obligation, Description of Payment Terms</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReceivableDueTerm" xlink:label="fix_ReceivableDueTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ReceivableDueTerm" xlink:to="fix_ReceivableDueTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ReceivableDueTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The payment terms for receivables in days.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ReceivableDueTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivable Due Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ReceivableDueTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivable payment terms (in days)</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PaymentsReceivedTerm" xlink:label="fix_PaymentsReceivedTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PaymentsReceivedTerm" xlink:to="fix_PaymentsReceivedTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PaymentsReceivedTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of days in which the entity receives payment from customers.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PaymentsReceivedTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments Received Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PaymentsReceivedTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments received term (in days)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_MechanicalServicesMember" xlink:label="fix_MechanicalServicesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalServicesMember" xlink:to="fix_MechanicalServicesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalServicesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Services [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalServicesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Services</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesMember" xlink:label="fix_ElectricalServicesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ElectricalServicesMember" xlink:to="fix_ElectricalServicesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ElectricalServicesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for the electrical services.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ElectricalServicesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Electrical Services</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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-20211231.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-20211231.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/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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-20211231.xsd#fix_IndustrialPropertyCustomerMember" xlink:label="fix_IndustrialPropertyCustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_IndustrialPropertyCustomerMember" xlink:to="fix_IndustrialPropertyCustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_IndustrialPropertyCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Building designed to house industrial operations and provide the necessary conditions for the operation of industrial equipment.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_IndustrialPropertyCustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Industrial</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:to="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Initial Application Period Cumulative Effect Transition [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Initial Application Period Cumulative Effect Transition [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Initial Application Period Cumulative Effect Transition [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" xlink:label="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" xlink:to="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Calculated under Revenue Guidance in Effect before Topic 606 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:to="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Initial Application Period Cumulative Effect Transition [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change due to acquisitions / disposals</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" xlink:label="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" xlink:to="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Receivable, Credit Loss Expense (Reversal)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change related to credit allowance</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" xlink:to="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) in contract with customer assets due to change in conditional versus unconditional.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Increase (Decrease) for Change Due to Conditional Versus Unconditional</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other changes in the period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change due to acquisitions / disposals</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other changes in the period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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, Practical Expedient, Remaining 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/2021/elts/us-gaap-2021-01-31.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 Measurements, Recurring and Nonrecurring [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeInstrumentRiskAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentRiskAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_DerivativeContractTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeContractTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Contract [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestRateSwapMember" xlink:to="us-gaap_InterestRateSwapMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestRateSwapMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Rate Swap</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Fair Value, Measurement Frequency [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsNonrecurringMember" xlink:label="us-gaap_FairValueMeasurementsNonrecurringMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsNonrecurringMember" xlink:to="us-gaap_FairValueMeasurementsNonrecurringMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsNonrecurringMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Quoted Market Prices In Active Markets for Identical Assets (Level 1)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Significant Other Observable Inputs (Level 2)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Significant Unobservable Inputs (Level 3)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_HedgingDesignationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Hedging Designation [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_HedgingDesignationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_HedgingDesignationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Hedging Designation [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" xlink:label="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" xlink:to="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Not Designated as Hedging Instrument, Economic Hedge [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_DerivativeInstrumentNotionalAmount" xlink:label="fix_DerivativeInstrumentNotionalAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DerivativeInstrumentNotionalAmount" xlink:to="fix_DerivativeInstrumentNotionalAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DerivativeInstrumentNotionalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative instrument notional amount.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DerivativeInstrumentNotionalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument Notional Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DerivativeInstrumentNotionalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notional amount</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DerivativeNetLossOnDerivative" xlink:label="fix_DerivativeNetLossOnDerivative" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DerivativeNetLossOnDerivative" xlink:to="fix_DerivativeNetLossOnDerivative_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DerivativeNetLossOnDerivative_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of net loss recognized on derivative.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DerivativeNetLossOnDerivative_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Net Loss On Derivative</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DerivativeNetLossOnDerivative_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net loss on derivative</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" xlink:to="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value, as of the balance sheet date, of potential cash payments under the contingent consideration arrangement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition Contingent Consideration Fair Value at Balance Sheet Date</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="us-gaap_DerivativeFairValueOfDerivativeLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:to="us-gaap_DerivativeFairValueOfDerivativeLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeFairValueOfDerivativeLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Liability, Fair Value, Gross Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DerivativeFairValueOfDerivativeLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest rate swap liability</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashSurrenderValueOfLifeInsurance" xlink:label="us-gaap_CashSurrenderValueOfLifeInsurance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashSurrenderValueOfLifeInsurance" xlink:to="us-gaap_CashSurrenderValueOfLifeInsurance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashSurrenderValueOfLifeInsurance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Surrender Value of Life Insurance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashSurrenderValueOfLifeInsurance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash surrender value</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 Reconciliations, 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 year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillImpairmentLoss" xlink:to="us-gaap_GoodwillImpairmentLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Impairment Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchase price paid in cash</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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other amount payable</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Promissory note payable</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="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of contingent earn-out payment under business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Consideration Transferred Contingent Earn Out</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_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/2021/elts/us-gaap-2021-01-31.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/totalLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total consideration transferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total purchase price</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other current assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of lessee's right to use underlying asset under operating lease.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_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 Asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease right-of-use asset</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Long-term Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_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="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of lessee's lease liability current underlying liability under operating lease.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating Lease Liability Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of the Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating Lease Liability Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_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/2021/elts/us-gaap-2021-01-31.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>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Backlog</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DomesticCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StateAndLocalJurisdictionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">State</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_NumberOfMilestoneEarnings" xlink:label="fix_NumberOfMilestoneEarnings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_NumberOfMilestoneEarnings" xlink:to="fix_NumberOfMilestoneEarnings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_NumberOfMilestoneEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of milestones.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_NumberOfMilestoneEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Milestone Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_NumberOfMilestoneEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of milestones</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Contingent earn-out estimated milestone payment, minimum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Contingent earn-out estimated milestone payment, maximum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Loss Carryforwards</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" xlink:to="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Contingent Consideration Arrangements Earn Out Period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Contingent Consideration Arrangements Earn Out Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent earn-out period</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.xsd#fix_MepHoldingCo.IncMember" xlink:label="fix_MepHoldingCo.IncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MepHoldingCo.IncMember" xlink:to="fix_MepHoldingCo.IncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MepHoldingCo.IncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to MEP Holding Co., Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MepHoldingCo.IncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">MEP Holdings</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorKentuckyMember" xlink:label="fix_MechanicalContractorKentuckyMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalContractorKentuckyMember" xlink:to="fix_MechanicalContractorKentuckyMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalContractorKentuckyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to acquisition of Kentucky mechanical contractor who indulged in service and control business.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalContractorKentuckyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Contractor Kentucky</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorIndianaMember" xlink:label="fix_MechanicalContractorIndianaMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalContractorIndianaMember" xlink:to="fix_MechanicalContractorIndianaMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalContractorIndianaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to acquisition of Indiana mechanical contractor who is temporary staffing company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalContractorIndianaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Contractor Indiana</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IveyMechanicalCompanyLlcMember" xlink:label="fix_IveyMechanicalCompanyLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_IveyMechanicalCompanyLlcMember" xlink:to="fix_IveyMechanicalCompanyLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_IveyMechanicalCompanyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to acquisition of Ivey Mechanical Company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_IveyMechanicalCompanyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Ivey</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TasEnergyIncMember" xlink:label="fix_TasEnergyIncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TasEnergyIncMember" xlink:to="fix_TasEnergyIncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TasEnergyIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to TAS Energy Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TasEnergyIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TAS Energy</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:to="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Immaterial acquisitions</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TECIndustrialConstructionAndMaintenanceMember" xlink:label="fix_TECIndustrialConstructionAndMaintenanceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TECIndustrialConstructionAndMaintenanceMember" xlink:to="fix_TECIndustrialConstructionAndMaintenanceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TECIndustrialConstructionAndMaintenanceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">T E C Industrial Construction and Maintenance.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TECIndustrialConstructionAndMaintenanceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TEC</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalContractorNorthCarolinaMember" xlink:label="fix_ElectricalContractorNorthCarolinaMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ElectricalContractorNorthCarolinaMember" xlink:to="fix_ElectricalContractorNorthCarolinaMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ElectricalContractorNorthCarolinaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to electrical contractor North Carolina.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ElectricalContractorNorthCarolinaMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Electrical Contractor North Carolina</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorUtahMember" xlink:label="fix_MechanicalContractorUtahMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalContractorUtahMember" xlink:to="fix_MechanicalContractorUtahMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalContractorUtahMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Utah mechanical contractor.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalContractorUtahMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Contractor Utah</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="us-gaap_NumberOfBusinessesAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfBusinessesAcquired" xlink:to="us-gaap_NumberOfBusinessesAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NumberOfBusinessesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Businesses Acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NumberOfBusinessesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of acquisitions</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of intangible assets, including goodwill, acquired at the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Intangibles And Goodwill</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchase price allocated to goodwill and identifiable intangible assets</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContingentEarnOutObligationToAcquireBusiness" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ContingentEarnOutObligationToAcquireBusiness" xlink:to="fix_ContingentEarnOutObligationToAcquireBusiness_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of contingent earn-out obligation included in purchase price.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent earn-out obligation to acquire business</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent earn-out obligation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Schedule of Goodwill [Table]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalServicesIndustryMember" xlink:label="fix_MechanicalServicesIndustryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MechanicalServicesIndustryMember" xlink:to="fix_MechanicalServicesIndustryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MechanicalServicesIndustryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the information pertaining to mechanical services industry.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MechanicalServicesIndustryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Mechanical Services Segment</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesIndustryMember" xlink:label="fix_ElectricalServicesIndustryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ElectricalServicesIndustryMember" xlink:to="fix_ElectricalServicesIndustryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ElectricalServicesIndustryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the information pertaining to electrical services industry.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ElectricalServicesIndustryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Electrical Services Industry</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillOtherIncreaseDecrease" xlink:label="us-gaap_GoodwillOtherIncreaseDecrease" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillOtherIncreaseDecrease" xlink:to="us-gaap_GoodwillOtherIncreaseDecrease_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillOtherIncreaseDecrease_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Other Increase (Decrease)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillOtherIncreaseDecrease_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impact of segment reorganization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" xlink:label="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" xlink:to="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Impaired, Accumulated Impairment Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated impairment charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Schedule of Finite-Lived Intangible Assets [Table]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" xlink:label="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" xlink:to="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the information pertaining to customer relationships non compete agreements and tradenames.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer Relationships Noncompete Agreements and Tradenames</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated Useful Lives in Years</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Book Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Accumulated Amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated Amortization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 Assets, Amortization Expense, Next Twelve Months</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">2022</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 Assets, Amortization Expense, 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">2023</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 Assets, Amortization Expense, 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">2024</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 Assets, Amortization Expense, 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">2025</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Amortization Expense, Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Amortization Expense, after Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_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/2021/elts/us-gaap-2021-01-31.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.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LegalEntityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Legal Entity [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:to="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Walker TX Holdings, Inc. and its wholly-owned subsidiaries.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Walker</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetImpairmentChargesAbstract" xlink:label="us-gaap_AssetImpairmentChargesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetImpairmentChargesAbstract" xlink:to="us-gaap_AssetImpairmentChargesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetImpairmentChargesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asset Impairment Charges [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetImpairmentChargesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfFairValuesInExcessOfCarryingValue" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PercentageOfFairValuesInExcessOfCarryingValue" xlink:to="fix_PercentageOfFairValuesInExcessOfCarryingValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The percentage of fair value in excess of carrying value.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of Fair Values in Excess of Carrying Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair values in excess of carrying value (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LandMember" xlink:label="us-gaap_LandMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LandMember" xlink:to="us-gaap_LandMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LandMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Land</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TransportationEquipmentMember" xlink:label="us-gaap_TransportationEquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransportationEquipmentMember" xlink:to="us-gaap_TransportationEquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TransportationEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Transportation equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MachineryAndEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Machinery and equipment</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ComputerAndTelephoneEquipmentMember" xlink:label="fix_ComputerAndTelephoneEquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ComputerAndTelephoneEquipmentMember" xlink:to="fix_ComputerAndTelephoneEquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ComputerAndTelephoneEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Computer represents long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems and telephone represents other tangible personal property, nonconsumable in nature, with finite lives.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ComputerAndTelephoneEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Computer and telephone equipment</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BuildingAndLeaseholdImprovementsMember" xlink:label="fix_BuildingAndLeaseholdImprovementsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_BuildingAndLeaseholdImprovementsMember" xlink:to="fix_BuildingAndLeaseholdImprovementsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_BuildingAndLeaseholdImprovementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Building represents facility held for productive use including, but not limited to, office, production, storage and distribution facilities and leasehold improvements represent additions or improvements to assets held under a lease arrangement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_BuildingAndLeaseholdImprovementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Buildings and leasehold improvements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Furniture and fixtures</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionInProgressMember" xlink:to="us-gaap_ConstructionInProgressMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionInProgressMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Construction in progress</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated useful life</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment, gross</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-Accumulated depreciation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation, Depletion and Amortization, Nonproduction</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation and amortization expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrentAbstract" xlink:label="us-gaap_OtherLiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherLiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Liabilities, Current [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherLiabilitiesCurrentAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product Warranty Accrual, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued warranty costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current lease liability</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/terseLabel" 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 Lease Liabilities</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AccruedJobLosses" xlink:label="fix_AccruedJobLosses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_AccruedJobLosses" xlink:to="fix_AccruedJobLosses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_AccruedJobLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the accrual for expenses related to job losses.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_AccruedJobLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Job Losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_AccruedJobLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued job losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sales and Excise Tax Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued sales and use tax</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Revenue, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LiabilitiesDueToFormerOwnersCurrent" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LiabilitiesDueToFormerOwnersCurrent" xlink:to="fix_LiabilitiesDueToFormerOwnersCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the carrying amount as of the balance sheet date of liabilities due to former owners. For classified balance sheets, represents the current portion of such liabilities (due within one year or within the normal operating cycle if longer).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities Due to Former Owners Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities due to former owners</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherSundryLiabilitiesCurrent" xlink:label="us-gaap_OtherSundryLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherSundryLiabilitiesCurrent" xlink:to="us-gaap_OtherSundryLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherSundryLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Sundry Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherSundryLiabilitiesCurrent_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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TermLoanMember" xlink:label="fix_TermLoanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TermLoanMember" xlink:to="fix_TermLoanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TermLoanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to term loan member.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TermLoanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Term loan</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableMember" xlink:label="us-gaap_LoansPayableMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansPayableMember" xlink:to="us-gaap_LoansPayableMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LoansPayableMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Promissory note</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Outstanding balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FinanceLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance Lease, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FinanceLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance lease liabilities (See Note 10)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_FinanceLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance lease liability</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:to="us-gaap_DebtLongtermAndShorttermCombinedAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt, Long-term and Short-term, Combined Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total principal amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Unamortized Discount (Premium) and Debt Issuance Costs, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less-unamortized debt issuance costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/netLabel" xlink:label="us-gaap_LongTermDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total debt, net of unamortized debt issuance costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term Debt, Maturities, Repayments of Principal in Next Twelve Months</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2022</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term Debt, Maturities, Repayments of Principal in Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2023</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term Debt, Maturities, Repayments of Principal in Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term Debt, Maturities, Repayments of Principal in Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtAndCapitalLeaseObligations" xlink:label="us-gaap_DebtAndCapitalLeaseObligations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtAndCapitalLeaseObligations" xlink:to="us-gaap_DebtAndCapitalLeaseObligations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtAndCapitalLeaseObligations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt and Capital Lease Obligations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DebtAndCapitalLeaseObligations_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpenseAbstract" xlink:label="us-gaap_InterestExpenseAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpenseAbstract" xlink:to="us-gaap_InterestExpenseAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpenseAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InterestExpenseAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpenseRelatedParty" xlink:label="us-gaap_InterestExpenseRelatedParty" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpenseRelatedParty" xlink:to="us-gaap_InterestExpenseRelatedParty_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpenseRelatedParty_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense, Related Party</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InterestExpenseRelatedParty_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense on notes to former owners</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts" xlink:label="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts" xlink:to="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Related Commitment Fees and Debt Issuance Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense on borrowings and unused commitment fees</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestExpenseOnInterestRateSwaps" xlink:label="fix_InterestExpenseOnInterestRateSwaps" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_InterestExpenseOnInterestRateSwaps" xlink:to="fix_InterestExpenseOnInterestRateSwaps_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_InterestExpenseOnInterestRateSwaps_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of interest expense on interest rate swaps.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_InterestExpenseOnInterestRateSwaps_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense on Interest Rate Swaps</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_InterestExpenseOnInterestRateSwaps_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense on interest rate swaps</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseInterestExpense" xlink:to="us-gaap_FinanceLeaseInterestExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FinanceLeaseInterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance Lease, Interest Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FinanceLeaseInterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense on finance leases</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LetterOfCreditFeesAmount" xlink:label="fix_LetterOfCreditFeesAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LetterOfCreditFeesAmount" xlink:to="fix_LetterOfCreditFeesAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LetterOfCreditFeesAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of fees associated with the letter of credit.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LetterOfCreditFeesAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of Credit Fees Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LetterOfCreditFeesAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of credit fees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfFinancingCostsAndDiscounts" xlink:label="us-gaap_AmortizationOfFinancingCostsAndDiscounts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfFinancingCostsAndDiscounts" xlink:to="us-gaap_AmortizationOfFinancingCostsAndDiscounts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfFinancingCostsAndDiscounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of Financing Costs and Discounts</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AmortizationOfFinancingCostsAndDiscounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of debt financing costs</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The secondary classification of alternative reference rates that may be used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Variable Rate Secondary Classification [Axis]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Identification of the secondary classification of alternative reference rate that is used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Variable Rate Secondary Classification [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateFederalFundsRateMember" xlink:label="fix_DebtInstrumentVariableRateFederalFundsRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateFederalFundsRateMember" xlink:to="fix_DebtInstrumentVariableRateFederalFundsRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateFederalFundsRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The federal funds rate used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateFederalFundsRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal Funds Rate</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" xlink:label="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" xlink:to="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The Wells Fargo Bank, N.A. Prime Rate used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Wells Fargo Bank, N.A. Prime Rate</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateOneMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateOneMonthLIBORMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateOneMonthLIBORMember" xlink:to="fix_DebtInstrumentVariableRateOneMonthLIBORMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateOneMonthLIBORMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The one-month LIBOR rate used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateOneMonthLIBORMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">One-month LIBOR</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSixMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateSixMonthLIBORMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateSixMonthLIBORMember" xlink:to="fix_DebtInstrumentVariableRateSixMonthLIBORMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateSixMonthLIBORMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The six-month LIBOR rate used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateSixMonthLIBORMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Six-month LIBOR</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmendedSeniorRevolvingCreditFacilityMember" xlink:label="fix_AmendedSeniorRevolvingCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_AmendedSeniorRevolvingCreditFacilityMember" xlink:to="fix_AmendedSeniorRevolvingCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_AmendedSeniorRevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information pertaining to the amended senior revolving credit facility.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_AmendedSeniorRevolvingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amended senior revolving credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotesPayableOtherPayablesMember" xlink:label="us-gaap_NotesPayableOtherPayablesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NotesPayableOtherPayablesMember" xlink:to="us-gaap_NotesPayableOtherPayablesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NotesPayableOtherPayablesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding notes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="fix-20211231.xsd#fix_DebtInstrumentVariableRateBaseRateMember" xlink:label="fix_DebtInstrumentVariableRateBaseRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentVariableRateBaseRateMember" xlink:to="fix_DebtInstrumentVariableRateBaseRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentVariableRateBaseRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The base rate used to calculate the variable interest rate of the debt instrument.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentVariableRateBaseRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EurodollarMember" xlink:to="us-gaap_EurodollarMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EurodollarMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Eurodollar rate</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.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-20211231.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-20211231.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 1.75</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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 2.50</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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 or greater</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_StatementScenarioAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementScenarioAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Scenario [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioUnspecifiedDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ScenarioUnspecifiedDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Scenario, Unspecified [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScenarioCovenantRequirementMember" xlink:label="fix_ScenarioCovenantRequirementMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ScenarioCovenantRequirementMember" xlink:to="fix_ScenarioCovenantRequirementMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ScenarioCovenantRequirementMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Domain member used to indicate the requirements per the terms of the debt agreement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ScenarioCovenantRequirementMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Covenant Requirement</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateAxis" xlink:label="fix_DebtCovenantEffectiveDateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantEffectiveDateAxis" xlink:to="fix_DebtCovenantEffectiveDateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantEffectiveDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information by date that the debt covenant ratio is applicable.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantEffectiveDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Covenant Effective Date [Axis]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateDomain" xlink:label="fix_DebtCovenantEffectiveDateDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtCovenantEffectiveDateDomain" xlink:to="fix_DebtCovenantEffectiveDateDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtCovenantEffectiveDateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The period through which the debt covenant ratio is applicable.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtCovenantEffectiveDateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Covenant Effective Date [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ThroughMaturityMember" xlink:label="fix_ThroughMaturityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ThroughMaturityMember" xlink:to="fix_ThroughMaturityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ThroughMaturityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information through the debt maturity date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ThroughMaturityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Through maturity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" xlink:to="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents repayment in terms of percentage of original aggregate principal amount.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayment In Terms Of Percentage Of Original Aggregate Principal Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayment in terms of percentage of original aggregate principal amount</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PaymentsOfFinancingCostsTermLoan" xlink:label="fix_PaymentsOfFinancingCostsTermLoan" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PaymentsOfFinancingCostsTermLoan" xlink:to="fix_PaymentsOfFinancingCostsTermLoan_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PaymentsOfFinancingCostsTermLoan_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments Of Financing Costs Term Loan</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PaymentsOfFinancingCostsTermLoan_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments Of Financing Costs Term Loan</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PaymentsOfFinancingCostsTermLoan_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of financing costs term loan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Line of Credit Facility, Amount Outstanding</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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" xlink:label="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" xlink:to="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Book value of assets pledged as collateral</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" xlink:to="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Net Earnings Used For Calculation Of Credit Facility Adjusted EBITDA, Number Of Quarters</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:to="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">n/a</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation Of Earnings Before Interest Tax Depreciation And Amortization to Net Income [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of Credit Facility Adjusted EBITDA to net income</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentFinancialCovenantsAbstract" xlink:label="fix_DebtInstrumentFinancialCovenantsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract" xlink:to="fix_DebtInstrumentFinancialCovenantsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentFinancialCovenantsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Financial Covenants [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentFinancialCovenantsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Principal financial covenants</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentInterestRateOptionsNumber" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentInterestRateOptionsNumber" xlink:to="fix_DebtInstrumentInterestRateOptionsNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of interest rate options.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Interest Rate Options Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of interest rate options</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantLeverageRatio" xlink:label="fix_DebtInstrumentCovenantLeverageRatio" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantLeverageRatio" xlink:to="fix_DebtInstrumentCovenantLeverageRatio_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the ratio of consolidated total debt to consolidated adjusted earnings before, interest, taxes, depreciation and amortization required to be maintained under the financial covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Leverage Ratio</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leverage ratio</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantFixedChargeCoverageRatio" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantFixedChargeCoverageRatio" xlink:to="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the ratio of consolidated adjusted earnings before, interest, taxes, depreciation and amortization, less non-financed capital expenditures, tax provision, dividends and amounts used to repurchase stock to the sum of interest expense and scheduled principal payments of indebtedness required to be maintained under the financial covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Fixed Charge Coverage Ratio</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fixed charge coverage ratio</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" xlink:to="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for the calculation of the fixed charge coverage ratio.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Capital Expenditures Tax Provisions Dividends and Stock Repurchase Payments Used for Calculation of Fixed Charge Coverage Ratio Number of Quarters</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for calculation of fixed charge coverage ratio</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of acquisition per transaction permitted under the financial covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Other Restrictions Permitted Acquisition Amount Per Transaction</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Permitted amount of acquisitions per transaction</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the aggregate purchase price of current acquisition and acquisitions in the preceding twelve month period used for determining the permitted amount of acquisition per transaction under the financial covenants.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Other Restrictions Aggregate Purchase Price of Acquisitions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate purchase price of current acquisition and acquisitions in the preceding 12 month period for determining permitted amount of acquisition per transaction</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the net leverage ratio as defined in the financial covenants which is used as a basis to determine other restrictions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Covenant Other Restrictions Net Leverage Ratio</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net leverage ratio used as basis for other restrictions</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" xlink:to="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of Credit Facility Adjusted EBITDA for determining additional margins.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Term of Earnings before Interest Tax Depreciation and Amortization for Determination of Additional Margins</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period of Credit Facility Adjusted EBITDA for determining additional margins</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MarketRatesAbstract" xlink:label="fix_MarketRatesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MarketRatesAbstract" xlink:to="fix_MarketRatesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MarketRatesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Market Rates [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MarketRatesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Market rates relating to interest options</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" xlink:label="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" xlink:to="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Description of Variable Rate Basis</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable rate basis</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentMarketRate" xlink:label="fix_DebtInstrumentMarketRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DebtInstrumentMarketRate" xlink:to="fix_DebtInstrumentMarketRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DebtInstrumentMarketRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the market rate relating to interest options under the Facility.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DebtInstrumentMarketRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument Market Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DebtInstrumentMarketRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Market rate (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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">Interest rate margin (as a percent)</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="fix-20211231.xsd#fix_LetterOfCreditFeesPercentage" xlink:label="fix_LetterOfCreditFeesPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LetterOfCreditFeesPercentage" xlink:to="fix_LetterOfCreditFeesPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LetterOfCreditFeesPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the fees for the letter of credit facility, expressed as a percent based on the ratio of consolidated total indebtedness to credit facility adjusted EBITDA, as defined in the credit agreement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LetterOfCreditFeesPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of Credit Fees Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LetterOfCreditFeesPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of credit fees (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Interest Rate at Period End</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average interest rate (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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 Disclosures [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-20211231.xsd#fix_CumulativeNumberOfCompaniesAcquired" xlink:label="fix_CumulativeNumberOfCompaniesAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CumulativeNumberOfCompaniesAcquired" xlink:to="fix_CumulativeNumberOfCompaniesAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CumulativeNumberOfCompaniesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cumulative number of companies acquired by the entity.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CumulativeNumberOfCompaniesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Number Of Companies Acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_CumulativeNumberOfCompaniesAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative number of companies acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" xlink:to="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finance Lease, Liability, Statement of Financial Position [Extensible Enumeration]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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 List]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Operating Lease Liabilities, Payments Due [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/2021/elts/us-gaap-2021-01-31.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, Payments, Due Next Twelve Months</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">2022</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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, Payments, Due 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">2023</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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, Payments, Due 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">2024</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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, Payments, Due 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">2025</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Payments, Due Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Payments, Due after Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_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/2021/elts/us-gaap-2021-01-31.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, Payments, Due</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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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 lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current tax provision-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Federal Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current State and Local Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">State and Puerto Rico</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Federal Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred State and Local Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">State and Puerto Rico</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Federal, State and Local, Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioForecastMember" xlink:to="srt_ScenarioForecastMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ScenarioForecastMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forecast</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective tax rates on continuing operations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal statutory income tax rate (as a percent)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes at the federal statutory rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Amount [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases (decreases) resulting from-</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net state income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowances</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxContingencies" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationTaxContingencies" xlink:to="us-gaap_IncomeTaxReconciliationTaxContingencies_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Tax Contingency, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net unrecognized tax benefits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nondeductible expenses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">R&amp;D tax credits</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">R&amp;D tax credits</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeduction" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_IncomeTaxReconciliationSection179dDeduction" xlink:to="fix_IncomeTaxReconciliationSection179dDeduction_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax reconciliation section 179D deduction.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Reconciliation Section 179d Deduction</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">179D deduction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation deductions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Other Reconciling Items, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestIncomeOnIncomeTaxRefundsNet" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_InterestIncomeOnIncomeTaxRefundsNet" xlink:to="fix_InterestIncomeOnIncomeTaxRefundsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The net amount of interest income (expense) on income tax refunds.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">interest Income on Income Tax Refunds, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest on income tax refund</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:to="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax reconciliation section 179D deduction, net of tax contingencies.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Reconciliation Section 179d Deduction Net Of Tax Contingencies</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">179D deduction</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">179D deduction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxCreditCarryforwardAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Credit Carryforward [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Credit Carryforward, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" xlink:label="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" xlink:to="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">R&amp;D tax credit and tax deduction, 179d.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">R&amp;D Tax Credit and 179D Deduction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxPeriodDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2016Member" xlink:label="us-gaap_TaxYear2016Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxYear2016Member" xlink:to="us-gaap_TaxYear2016Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxYear2016Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2016</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2017Member" xlink:label="us-gaap_TaxYear2017Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxYear2017Member" xlink:to="us-gaap_TaxYear2017Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxYear2017Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2017</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2018Member" xlink:label="us-gaap_TaxYear2018Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxYear2018Member" xlink:to="us-gaap_TaxYear2018Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxYear2018Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2018</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TaxYears2016To2018Member" xlink:label="fix_TaxYears2016To2018Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TaxYears2016To2018Member" xlink:to="fix_TaxYears2016To2018Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TaxYears2016To2018Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Identified as tax year total for 2016-2018.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TaxYears2016To2018Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total Tax Years 2016-2018</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InternalRevenueServiceIRSMember" xlink:to="us-gaap_InternalRevenueServiceIRSMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InternalRevenueServiceIRSMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Internal Revenue Service (IRS)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/terseLabel" xlink:label="us-gaap_IncomeTaxExaminationLineItems_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additions based on tax positions related to prior years</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" xlink:label="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" xlink:to="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Examination, Liability (Refund) Adjustment from Settlement with Taxing Authority</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Refund claims allowed in Income tax examination</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reductions for settlements with tax authorities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reduced provision for income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Components of Deferred Tax Assets [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Allowance for Doubtful Accounts</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts receivable and allowance for doubtful accounts</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities and expenses</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxAssetsLeaseLiability" xlink:label="fix_DeferredTaxAssetsLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DeferredTaxAssetsLeaseLiability" xlink:to="fix_DeferredTaxAssetsLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DeferredTaxAssetsLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from lease liabilities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DeferredTaxAssetsLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Lease Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DeferredTaxAssetsLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Operating Loss Carryforwards</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Goodwill and Intangible Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOther" xlink:to="us-gaap_DeferredTaxAssetsOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsOther_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subtotal</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Valuation Allowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowances</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Net of Valuation Allowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net deferred tax assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred tax assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Components of Deferred Tax Liabilities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Property, Plant and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesLeasingArrangements" xlink:label="us-gaap_DeferredTaxLiabilitiesLeasingArrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesLeasingArrangements" xlink:to="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Leasing Arrangements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease right-of-use asset</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxLiabilitiesLongTermContracts" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DeferredTaxLiabilitiesLongTermContracts" xlink:to="fix_DeferredTaxLiabilitiesLongTermContracts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of deferred tax liability attributable to long-term contracts.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities Long Term Contracts</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term contracts</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Intangible Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Goodwill</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred tax liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net deferred tax assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Net, Classification [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="us-gaap_OperatingLossCarryforwardsTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwardsTable" xlink:to="us-gaap_OperatingLossCarryforwardsTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwardsTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Loss Carryforwards [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Loss Carryforwards [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Federal deferred tax assets net operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Operating Loss Carryforwards, State and Local</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">State deferred tax assets net operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:label="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:to="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation Allowance, Deferred Tax Asset, Change in Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase in valuation allowance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at beginning of year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additions based on tax positions related to current year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Reductions for tax positions related to prior years</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest and penalties accrued</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:to="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Decrease in Unrecognized Tax Benefits is Reasonably Possible</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Decrease in unrecognized tax benefits</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" xlink:label="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" xlink:to="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the maximum percentage of employee gross pay, by the terms of the plan, that the employer may contribute to a defined contribution plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Contribution Plan Maximum Annual Contribution Per Employee by Employer Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of contributions of covered employees' salaries or wages</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="us-gaap_DefinedContributionPlanCostRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedContributionPlanCostRecognized" xlink:to="us-gaap_DefinedContributionPlanCostRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DefinedContributionPlanCostRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Contribution Plan, Cost Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DefinedContributionPlanCostRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contribution</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedContributionPlanAmountPayable" xlink:label="fix_DefinedContributionPlanAmountPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedContributionPlanAmountPayable" xlink:to="fix_DefinedContributionPlanAmountPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedContributionPlanAmountPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount payable to defined contribution plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedContributionPlanAmountPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Contribution Plan Amount Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedContributionPlanAmountPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount payable to plan</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" xlink:label="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" xlink:to="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of employees who are union members and have participated in the multi-employer pension plans.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Multi Employer Pension Plan Number of Employees who are Union Members</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of employees who are union members</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MultiemployerPlanPensionInsignificantPlanContribution" xlink:label="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution" xlink:to="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Multiemployer Plans, Plan Contributions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contributions made to multi-employer pension plans</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:label="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:to="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period in which certain individuals are entitled to fixed annual payments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period in which Certain Individuals are Entitled to Fixed Annual Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period in which certain individuals are entitled to fixed annual payments</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:label="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:to="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the maximum age under which certain individuals are entitled to fixed annual payments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Maximum Age in which Certain Individuals are Entitled to Fixed Annual Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum age under which certain individuals are entitled to fixed annual payments</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" xlink:to="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the portion of benefits vesting after ten years of completed service.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period Portion of Benefits Vesting after Ten Years of Completed Service</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Portion of benefits vesting after ten years of completed service (as a percent)</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" xlink:to="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of completed service over which 50 percent of benefits are vested.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period of Completed Service over which 50 Percent of Benefits are Vested</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period of completed service over which 50% of benefits are vested</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" xlink:to="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the portion of benefits vesting after fifteen years of completed service.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period Portion of Benefits Vesting after Fifteen Years of Completed Service</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Portion of benefits vesting after fifteen years of completed service (as a percent)</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" xlink:to="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of completed service over which 75 percent of benefits are vested.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period of Completed Service over which 75 Percent of Benefits are Vested</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period of completed service over which 75% of benefits are vested</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" xlink:label="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" xlink:to="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of service over which benefits are fully vested.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Defined Benefit Plan Period of Service over which Benefits are Fully Vested</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period of service over which benefits are fully vested</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" xlink:to="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Pension and Other Postretirement Defined Benefit Plans, Liabilities, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unfunded benefit liability</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceGuaranteeMember" xlink:label="us-gaap_PerformanceGuaranteeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceGuaranteeMember" xlink:to="us-gaap_PerformanceGuaranteeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PerformanceGuaranteeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Obligation to perform subcontract work</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_CounterpartyNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CounterpartyNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Counterparty Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Counterparty Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerMember" xlink:label="fix_CustomerMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_CustomerMember" xlink:to="fix_CustomerMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_CustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information relating to customer.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_CustomerMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="us-gaap_LitigationStatusAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LitigationStatusAxis" xlink:to="us-gaap_LitigationStatusAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LitigationStatusAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Litigation Status [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="us-gaap_LitigationStatusDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LitigationStatusDomain" xlink:to="us-gaap_LitigationStatusDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LitigationStatusDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Litigation Status [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PendingLitigationMember" xlink:label="us-gaap_PendingLitigationMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PendingLitigationMember" xlink:to="us-gaap_PendingLitigationMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PendingLitigationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Pending Litigation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self-Insurance</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencyLetterOfIntentUnderDisputeNumber" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LossContingencyLetterOfIntentUnderDisputeNumber" xlink:to="fix_LossContingencyLetterOfIntentUnderDisputeNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The total number of letter of intent executed to perform subcontract work under dispute pertaining to a loss contingency during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency, Letter Of Intent Under Dispute, Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letter of intent under dispute</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyDamagesSoughtValue" xlink:to="us-gaap_LossContingencyDamagesSoughtValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingencyDamagesSoughtValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency, Damages Sought, Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LossContingencyDamagesSoughtValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Damages claimed</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencyDamagesStatedValue" xlink:label="fix_LossContingencyDamagesStatedValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_LossContingencyDamagesStatedValue" xlink:to="fix_LossContingencyDamagesStatedValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_LossContingencyDamagesStatedValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The value (monetary amount) of the award the defendant stated in the legal matter.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_LossContingencyDamagesStatedValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency, Damages Stated, Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_LossContingencyDamagesStatedValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Damages stated</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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-20211231.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="fix-20211231.xsd#fix_WorkersCompensationMember" xlink:label="fix_WorkersCompensationMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_WorkersCompensationMember" xlink:to="fix_WorkersCompensationMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_WorkersCompensationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the workers compensation arrangement under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_WorkersCompensationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Workers Compensation</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:label="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:to="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employer's liability, general liability and auto liability arrangement under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employer's Liability, General Liability and Auto Liability</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityMember" xlink:label="fix_EmployersLiabilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployersLiabilityMember" xlink:to="fix_EmployersLiabilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployersLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employer's liability arrangement under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployersLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employer's Liability</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralLiabilityMember" xlink:label="us-gaap_GeneralLiabilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralLiabilityMember" xlink:to="us-gaap_GeneralLiabilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General Liability</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AutoLiabilityMember" xlink:label="fix_AutoLiabilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_AutoLiabilityMember" xlink:to="fix_AutoLiabilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_AutoLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the auto liability arrangement under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_AutoLiabilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auto Liability</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalMember" xlink:label="fix_EmployeeMedicalMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployeeMedicalMember" xlink:to="fix_EmployeeMedicalMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployeeMedicalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employee medical arrangement under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployeeMedicalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Medical</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanOneMember" xlink:label="fix_EmployeeMedicalPlanOneMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployeeMedicalPlanOneMember" xlink:to="fix_EmployeeMedicalPlanOneMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployeeMedicalPlanOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employee medical arrangement for plan one under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployeeMedicalPlanOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Medical- Plan One</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanTwoMember" xlink:label="fix_EmployeeMedicalPlanTwoMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployeeMedicalPlanTwoMember" xlink:to="fix_EmployeeMedicalPlanTwoMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployeeMedicalPlanTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employee medical arrangement for other plan under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployeeMedicalPlanTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Medical- Plan Two</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanThreeMember" xlink:label="fix_EmployeeMedicalPlanThreeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployeeMedicalPlanThreeMember" xlink:to="fix_EmployeeMedicalPlanThreeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployeeMedicalPlanThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the employee medical arrangement for a third plan under self-insurance contract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployeeMedicalPlanThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Medical - Plan Three</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerIncident" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SelfInsuranceDeductibleAmountPerIncident" xlink:to="fix_SelfInsuranceDeductibleAmountPerIncident_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of risk retained by the entity per incident before the insurance arrangement begins to provide coverage under various risks.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Deductible Amount Per Incident</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Per incident deductible amount</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" xlink:to="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of loss fully insured above per-incident deductible amount under insurance arrangements under various risks.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Amount of Loss Fully Insured above Deductible Coverage Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of loss fully insured above per-incident deductible amount</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" xlink:to="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of aggregate excess loss coverage above applicable per-incident deductibles for all lines of risk.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Aggregate Loss Insurance Covered Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of excess loss insurance covered</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceNumberOfMedicalPlans" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SelfInsuranceNumberOfMedicalPlans" xlink:to="fix_SelfInsuranceNumberOfMedicalPlans_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of medical plans.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Number of Medical Plans</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of medical plans</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" xlink:to="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of risk retained by the entity per person, per policy before the insurance arrangement begins to provide coverage under various risks.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Self Insurance Deductible Amount Per Person Per Policy</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Per person, per policy deductible amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.xsd#fix_EquityIncentivePlan2012Member" xlink:label="fix_EquityIncentivePlan2012Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EquityIncentivePlan2012Member" xlink:to="fix_EquityIncentivePlan2012Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EquityIncentivePlan2012Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the 2012 Equity Incentive Plan of the entity.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EquityIncentivePlan2012Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2012 Equity Incentive Plan</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_OmnibusIncentivePlan2017Member" xlink:label="fix_OmnibusIncentivePlan2017Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_OmnibusIncentivePlan2017Member" xlink:to="fix_OmnibusIncentivePlan2017Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_OmnibusIncentivePlan2017Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">This member stands for 2017 Omnibus Incentive Plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_OmnibusIncentivePlan2017Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2017 Omnibus Incentive Plan</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.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/2021/elts/us-gaap-2021-01-31.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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of shares authorized and reserved for issuance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of shares available for issuance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Shares Repurchase Program [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/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Repurchase Program, Number of Shares Authorized to be Repurchased</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_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="fix-20211231.xsd#fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" xlink:to="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The additional number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Repurchase Program, Additional Number of Shares Authorized to be Repurchased</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional number of shares authorized for repurchase</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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">Treasury Stock 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_EmployeeAndNonemployeeStockOptionMember" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">An arrangement whereby an employee and other than employee is entitled to receive in the future, subject to vesting and other restrictions, a number of shares in the entity at a specified price, as defined in the agreement. Although there are variations, normally, after vesting, when an option is exercised, the employee-holder and non-employee-holder pays the strike value in cash to the issuing employer-entity and receives equity shares. The equity shares can be sold into the market for cash at the current market price without restriction.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Allocated Share-based Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vesting period</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the sum of age and years of service for accelerated vesting of certain stock options and restricted stock awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Based Compensation Arrangement by Share Based Payment Award sum of age and years of Service for Accelerated Vesting on Retirement</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sum of age and years of service for accelerated vesting on retirement of certain stock options and restricted stock awards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Service Share-based Compensation, Tax Benefit from Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax benefit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding at end of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding at beginning of year (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Options exercisable at end of year (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Exercise Price</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding at end of year (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Outstanding at beginning of year (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_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, Intrinsic Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intrinsic value of options exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-average remaining contractual term of options exercisable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Intrinsic Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate intrinsic value of options exercisable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of options that are vested and expected to vest (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average exercise price of options that are vested and expected to vest (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized compensation cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Number of Shares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nonvested at end of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nonvested at beginning of year (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercise Price Range [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Domain]</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeOneMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeOneMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationExercisePriceRangeOneMember" xlink:to="fix_ShareBasedCompensationExercisePriceRangeOneMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ShareBasedCompensationExercisePriceRangeOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the exercise price range from 16.15 dollars to 30.36 dollars per share.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationExercisePriceRangeOneMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">$16.15 - $30.36</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeTwoMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeTwoMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationExercisePriceRangeTwoMember" xlink:to="fix_ShareBasedCompensationExercisePriceRangeTwoMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ShareBasedCompensationExercisePriceRangeTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the exercise price range from 36.25 dollars to 54.38 dollars per share.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationExercisePriceRangeTwoMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">$36.25 - $54.38</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeThreeMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeThreeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationExercisePriceRangeThreeMember" xlink:to="fix_ShareBasedCompensationExercisePriceRangeThreeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ShareBasedCompensationExercisePriceRangeThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the exercise price range from 16.15 dollars to 54.38 dollars per share.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationExercisePriceRangeThreeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">$16.15 - $54.38</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Lower Range Limit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercise price, low end of range (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Upper Range Limit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercise price, high end of range (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:label="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:to="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Based Compensation Shares Authorized under Stock Option Plans Exercise Price Range Outstanding Options [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Options Outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Number of Outstanding Options</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Outstanding Options, Weighted Average Remaining Contractual Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Outstanding Options, Weighted Average Exercise Price</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Exercise Price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RestrictedStockAndRestrictedStockUnitsRSUMember" xlink:label="fix_RestrictedStockAndRestrictedStockUnitsRSUMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_RestrictedStockAndRestrictedStockUnitsRSUMember" xlink:to="fix_RestrictedStockAndRestrictedStockUnitsRSUMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_RestrictedStockAndRestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares and stock units that an entity has not yet issued because the agreed-upon consideration, such as employee services, has not yet been received.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_RestrictedStockAndRestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restricted Stock and Restricted Stock Units</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PerformanceSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance Stock Units</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Compensation expense yet to be recognized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-average period over which compensation cost will be recognized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total fair value of options vested</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Based Compensation Arrangement by Share Based Payment Award, Options Nonvested [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Nonvested Options, Shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unvested at end of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unvested at beginning of year (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Grant Date Fair Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unvested at end of year (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unvested at beginning of year (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-average fair value (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value of shares vested</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate intrinsic value of restricted stock vested</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TypesOfPerformanceStockUnits" xlink:label="fix_TypesOfPerformanceStockUnits" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_TypesOfPerformanceStockUnits" xlink:to="fix_TypesOfPerformanceStockUnits_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_TypesOfPerformanceStockUnits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of types of performance stock units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_TypesOfPerformanceStockUnits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Types of Performance Stock Units</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_TypesOfPerformanceStockUnits_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Types of performance units</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" xlink:to="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the measurements of units based on relative group of peer EPS.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of Units Measured on Stock Price Relative to Group of Peer</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of units measured on stock price relative to peer group</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" xlink:to="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the measurements of units based predetermined EPS.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of Units Measured on Predetermined EPS</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of units measured on stock price based on pre determined EPS</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PerformanceMultiplierForDollarDenominatedAwardGranted" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PerformanceMultiplierForDollarDenominatedAwardGranted" xlink:to="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the performance multiplier for dollar-denominated award granted at target.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance Multiplier for Dollar Denominated Award Granted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance measures for dollar denominated award granted</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" xlink:to="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period for which shareholder return is compared with peer group for units determined by EPS performance.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period for which Shareholder Return is Compared with Peer Group for Units Determined by EPS Performance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period for which shareholder return is compared with peer group for units determined by EPS performance</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" xlink:to="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the fair market value of liabilities of performance share awards, as of the balance sheet date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Based Compensation Performance Shares Award Calculated Fair Market Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Calculated fair market value</label>
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" xlink:to="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the fair market value of current liabilities of performance share awards, as of the balance sheet date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ShareBased Compensation Performance Shares Award Calculated Fair Market Value Current Portion</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Value of PSUs granted</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntersegmentEliminationMember" xlink:to="us-gaap_IntersegmentEliminationMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntersegmentEliminationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Corporate &amp; Eliminations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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>14
<FILENAME>fix-20211231_pre.xml
<DESCRIPTION>EX-101.PRE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8042.36810 -->
<!--Based on XBRL 2.1-->
<!--Created on: 2/23/2022 9:26:59 PM-->
<!--Modified on: 2/23/2022 9:26:59 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-20211231.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedBalanceSheetsParenthetical" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfStockholdersEquityParenthetical" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureBusinessAndOrganization" roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomers" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureFairValueMeasurements" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitions" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosurePropertyAndEquipment" roleURI="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDetailOfOtherCurrentLiabilities" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligations" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeases" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxes" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureEmployeeBenefitPlans" roleURI="http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureCommitmentsAndContingencies" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquity" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensation" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSegmentInformation" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosurePropertyAndEquipmentTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDetailOfOtherCurrentLiabilitiesTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSegmentInformationTables" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureBusinessAndOrganizationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsContingentEarnOutObligationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureAcquisitionsOtherAcquisitionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDetailOfOtherCurrentLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsFuturePaymentsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureDebtObligationsOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesProvisionDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesReconciliationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesProvisionChangesExaminationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureEmployeeBenefitPlansDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityIncentiveAndOtherDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockholdersEquityNumberOfSharesDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationStockOptionActivityDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationStockOptionPlanActivityDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureStockBasedCompensationFairValueAssumptionsDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="fix-20211231.xsd#DisclosureSegmentInformationDetails" roleURI="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" xlink:type="extended" xlink:title="00090 - Document - Document and Entity Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentType" xlink:label="dei_DocumentType_637812484141473154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType_637812484141473154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport_637812484141473154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentAnnualReport_637812484141473154" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate_637812484141483157" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport_637812484141483157" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber_637812484141483157" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName_637812484141483157" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode_637812484141483157" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber_637812484141483157" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1_637812484141483157" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2_637812484141483157" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown_637812484141483157" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince_637812484141483157" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode_637812484141483157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode_637812484141483157" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode_637812484141493142" order="14" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber_637812484141493142" order="15" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle_637812484141493142" order="16" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol_637812484141493142" order="17" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName_637812484141493142" order="18" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityWellKnownSeasonedIssuer_637812484141493142" order="19" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityVoluntaryFilers_637812484141493142" order="20" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus_637812484141493142" order="21" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent_637812484141493142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent_637812484141493142" order="22" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory_637812484141503294" order="23" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness_637812484141503294" order="24" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany_637812484141503294" order="25" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityShellCompany_637812484141503294" order="26" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityPublicFloat_637812484141503294" order="27" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding_637812484141503294" order="28" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey_637812484141503294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey_637812484141503294" order="29" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus_637812484141513137" order="30" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus_637812484141513137" order="31" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate_637812484141513137" order="32" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag_637812484141513137" order="33" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="dei_IcfrAuditorAttestationFlag_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_IcfrAuditorAttestationFlag_637812484141513137" order="34" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="dei_AuditorName_637812484141513137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AuditorName_637812484141513137" order="35" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId_637812484141523136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AuditorFirmId_637812484141523136" order="36" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation_637812484141523136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AuditorLocation_637812484141523136" order="37" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract_637812484141533161" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_AssetsCurrentAbstract_637812484141533161" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637812484141533161" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BilledContractReceivables" xlink:label="us-gaap_BilledContractReceivables_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_BilledContractReceivables_637812484141533161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_UnbilledContractsReceivable_637812484141533161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="us-gaap_NontradeReceivablesCurrent_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_NontradeReceivablesCurrent_637812484141533161" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_InventoryNet_637812484141533161" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637812484141533161" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_637812484141533161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637812484141533161" xlink:to="us-gaap_AssetsCurrent_637812484141533161" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637812484141533161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637812484141533161" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637812484141543218" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_Goodwill_637812484141543218" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637812484141543218" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637812484141543218" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_OtherAssetsNoncurrent_637812484141543218" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637812484141533161" xlink:to="us-gaap_Assets_637812484141543218" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_LongTermDebtCurrent_637812484141553140" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_AccountsPayableCurrent_637812484141553140" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637812484141553140" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637812484141553140" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_SelfInsuranceReserveCurrent_637812484141553140" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_OtherLiabilitiesCurrent_637812484141553140" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637812484141543218" xlink:to="us-gaap_LiabilitiesCurrent_637812484141553140" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637812484141553140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_LongTermDebtNoncurrent_637812484141553140" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484141563139" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484141563139" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_637812484141563139" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_Liabilities_637812484141563139" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_CommitmentsAndContingencies_637812484141563139" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_PreferredStockValue_637812484141573139" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_CommonStockValue_637812484141573139" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_TreasuryStockValue_637812484141573139" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637812484141573139" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637812484141573139" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637812484141573139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract_637812484141563139" xlink:to="us-gaap_StockholdersEquity_637812484141573139" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637812484141543218" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_637812484141583203" 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="00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637812484141583203" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_637812484141583203" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent" xlink:label="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent_637812484141583203" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CostsInExcessOfBillingsAllowanceForCreditLosses" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_637812484141583203" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_637812484141583203" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_637812484141583203" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesAuthorized_637812484141593148" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesIssued_637812484141593148" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesOutstanding_637812484141593148" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_637812484141593148" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorized_637812484141593148" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued_637812484141593148" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_TreasuryStockShares_637812484141593148" 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="00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_637812484141593148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_Revenues_637812484141593148" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_CostOfRevenue_637812484141603147" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit_637812484141603147" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_637812484141603147" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets_637812484141603147" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OperatingIncomeLoss_637812484141603147" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" xlink:to="us-gaap_InvestmentIncomeInterest_637812484141603147" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" xlink:to="us-gaap_InterestExpense_637812484141603147" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484141603147" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_637812484141603147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_637812484141603147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract_637812484141603147" xlink:to="us-gaap_NonoperatingIncomeExpense_637812484141613141" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637812484141613141" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484141613141" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NetIncomeLoss_637812484141613141" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_637812484141613141" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637812484141613141" xlink:to="us-gaap_EarningsPerShareBasic_637812484141613141" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637812484141613141" xlink:to="us-gaap_EarningsPerShareDiluted_637812484141613141" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637812484141613141" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484141613141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637812484141613141" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484141613141" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637812484141613141" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637812484141623141" 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="00300 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable_637812484141623141" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141623141" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis_637812484141623141" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis_637812484141623141" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_637812484141623141" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis_637812484141623141" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain_637812484141623141" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141623141" xlink:to="us-gaap_StatementEquityComponentsAxis_637812484141623141" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember_637812484141623141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637812484141623141" xlink:to="us-gaap_CommonStockMember_637812484141623141" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637812484141623141" xlink:to="us-gaap_TreasuryStockMember_637812484141633155" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637812484141623141" xlink:to="us-gaap_AdditionalPaidInCapitalMember_637812484141633155" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637812484141623141" xlink:to="us-gaap_RetainedEarningsMember_637812484141633155" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637812484141623141" xlink:to="us-gaap_EquityComponentDomain_637812484141633155" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141623141" xlink:to="us-gaap_StatementLineItems_637812484141633155" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484141633155" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_StockholdersEquity_637812484141633155" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_CommonStockSharesIssued_637812484141633155" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_TreasuryStockShares_637812484141633155" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_637812484141633155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_ProfitLoss_637812484141633155" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract" xlink:label="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_637812484141643144" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_637812484141643144" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637812484141643144" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637812484141643144" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637812484141643144" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract_637812484141643144" xlink:to="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_637812484141643144" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross" xlink:label="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross_637812484141643144" xlink:to="fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross_637812484141643144" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_637812484141643144" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_637812484141643144" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_637812484141643144" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637812484141643144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637812484141643144" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DividendsCommonStockCash" xlink:label="us-gaap_DividendsCommonStockCash_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_DividendsCommonStockCash_637812484141653142" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockValueAcquiredCostMethod" xlink:label="us-gaap_TreasuryStockValueAcquiredCostMethod_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_TreasuryStockValueAcquiredCostMethod_637812484141653142" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TreasuryStockValueAcquiredCostMethod_637812484141653142" xlink:to="us-gaap_TreasuryStockSharesAcquired_637812484141653142" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_StockholdersEquity_637812484141653142" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_CommonStockSharesIssued_637812484141653142" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares_637812484141653142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_637812484141633155" xlink:to="us-gaap_TreasuryStockShares_637812484141653142" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" xlink:type="extended" xlink:title="00305 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockDividendsPerShareDeclared" xlink:label="us-gaap_CommonStockDividendsPerShareDeclared_637812484141663141" />
    <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_637812484141663141" 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="00400 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_637812484141663141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_ProfitLoss_637812484141663141" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637812484141663141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637812484141663141" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_637812484141663141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_Depreciation_637812484141663141" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ChangeInRightOfUseAssets" xlink:label="fix_ChangeInRightOfUseAssets_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="fix_ChangeInRightOfUseAssets_637812484141673153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_637812484141673153" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637812484141673153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_AmortizationOfFinancingCosts_637812484141673153" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_637812484141673153" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637812484141673153" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_ShareBasedCompensation_637812484141673153" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_637812484141673153" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637812484141683139" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInInventories_637812484141683139" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637812484141683139" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset_637812484141683139" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_637812484141683139" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_637812484141673153" xlink:to="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_637812484141683139" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_637812484141683139" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_637812484141683139" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_637812484141683139" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_637812484141683139" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_637812484141683139" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_637812484141683139" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_637812484141693140" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637812484141663141" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637812484141693140" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484141693140" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_637812484141693140" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" xlink:to="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested_637812484141693140" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637812484141693140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637812484141693140" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_637812484141693140" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637812484141703138" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit_637812484141703138" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit_637812484141703138" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfSeniorDebt" xlink:label="us-gaap_RepaymentsOfSeniorDebt_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_RepaymentsOfSeniorDebt_637812484141703138" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt_637812484141703138" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_RepaymentsOfOtherDebt_637812484141703138" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_FinanceLeasePrincipalPayments_637812484141713140" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_PaymentsOfFinancingCosts_637812484141713140" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock" xlink:label="us-gaap_PaymentsOfDividendsCommonStock_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_PaymentsOfDividendsCommonStock_637812484141713140" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484141713140" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_637812484141713140" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_637812484141713140" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_637812484141713140" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredAcquisitionPayments" xlink:label="fix_DeferredAcquisitionPayments_637812484141723314" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="fix_DeferredAcquisitionPayments_637812484141723314" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637812484141723314" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637812484141723314" order="12" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484141723314" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_637812484141703138" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637812484141723314" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_637812484141723314" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_637812484141723314" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_637812484141733333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_637812484141733333" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6378124841417333331" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6378124841417333331" 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="10101 - Disclosure - Business and Organization" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NatureOfOperations" xlink:label="us-gaap_NatureOfOperations_637812484141733333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_NatureOfOperations_637812484141733333" 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="10201 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_637812484141743161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_637812484141743161" 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="10301 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_637812484141743161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_637812484141743161" 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="10401 - Disclosure - Fair Value Measurements" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock_637812484141743161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock_637812484141743161" 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="10501 - Disclosure - Acquisitions" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_637812484141743161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_637812484141743161" 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="10601 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_636202500314132299" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_637812484141753150" />
    <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_637812484141753150" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment" xlink:type="extended" xlink:title="10701 - Disclosure - Property and Equipment" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637812484141753150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637812484141753150" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities" xlink:type="extended" xlink:title="10801 - Disclosure - Detail of Other Current Liabilities" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_637812484141753150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_637812484141753150" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" xlink:type="extended" xlink:title="10901 - Disclosure - Debt Obligations" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock_637812484141753150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock_637812484141753150" 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="11001 - Disclosure - Leases" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_637812484141763152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_637812484141763152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes" xlink:type="extended" xlink:title="11101 - Disclosure - Income Taxes" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_637812484141763152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_637812484141763152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans" xlink:type="extended" xlink:title="11201 - Disclosure - Employee Benefit Plans" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_637812484141763152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_637812484141763152" 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="11301 - Disclosure - Commitments and Contingencies" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637812484141763152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637812484141763152" 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="11401 - Disclosure - Stockholders' Equity" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock_637812484141773141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock_637812484141773141" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation" xlink:type="extended" xlink:title="11501 - Disclosure - Stock-Based Compensation" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637812484141773141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637812484141773141" 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="11601 - Disclosure - Segment Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_637812484141773141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_637812484141773141" 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="20202 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock_637812484141773141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock_637812484141773141" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates_637812484141773141" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates_637812484141773141" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_637812484141783150" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637812484141783150" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_637812484141783150" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:label="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_637812484141783150" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock_637812484141783150" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_637812484141783150" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_637812484141783150" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_637812484141783150" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy_637812484141783150" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SelfInsuranceReservePolicyTextBlock" xlink:label="us-gaap_SelfInsuranceReservePolicyTextBlock_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SelfInsuranceReservePolicyTextBlock_637812484141783150" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StandardProductWarrantyPolicy" xlink:label="us-gaap_StandardProductWarrantyPolicy_637812484141783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_StandardProductWarrantyPolicy_637812484141783150" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_637812484141793142" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConcentrationRiskCreditRisk_637812484141793142" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_637812484141793142" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InsuranceRecoveryPolicyPolicyTextBlock" xlink:label="fix_InsuranceRecoveryPolicyPolicyTextBlock_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="fix_InsuranceRecoveryPolicyPolicyTextBlock_637812484141793142" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_637812484141793142" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables" xlink:type="extended" xlink:title="30203 - Disclosure - Summary of Significant Accounting Policies and Estimates (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637812484141793142" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637812484141793142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637812484141793142" order="2" 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="30303 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_637485565109745046" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfContractsInProgressTableTextBlock" xlink:label="fix_ScheduleOfContractsInProgressTableTextBlock_637812484141803148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_637485565109745046" xlink:to="fix_ScheduleOfContractsInProgressTableTextBlock_637812484141803148" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_637812484141803148" />
    <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_637812484141803148" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_637812484141803148" />
    <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_637812484141803148" order="3" 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="30403 - Disclosure - Fair Value Measurements (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_637812484141803148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_637812484141803148" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637812484141803148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637812484141803148" 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="30503 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484141813155" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484141813155" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484141813155" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484141813155" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484141813155" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484141813155" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484141813155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484141813155" xlink:to="us-gaap_BusinessAcquisitionLineItems_637812484141813155" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484141813155" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637812484141813155" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484141813155" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_637812484141813155" 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="30603 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_637812484141813155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637812484141813155" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_637812484141813155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_637812484141813155" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables" xlink:type="extended" xlink:title="30703 - Disclosure - Property and Equipment (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_637812484141823151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_637812484141823151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables" xlink:type="extended" xlink:title="30803 - Disclosure - Detail of Other Current Liabilities (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637812484141823151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637812484141823151" order="1" 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="30903 - Disclosure - Debt Obligations (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_637812484141823151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock_637812484141823151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_637812484141823151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_637812484141823151" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock" xlink:label="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock_637812484141833154" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfFloatingInterestRateBasesTableTextBlock" xlink:label="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="fix_ScheduleOfFloatingInterestRateBasesTableTextBlock_637812484141833154" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfAdditionalMarginsTableTextBlock" xlink:label="fix_ScheduleOfAdditionalMarginsTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="fix_ScheduleOfAdditionalMarginsTableTextBlock_637812484141833154" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" xlink:type="extended" xlink:title="31003 - Disclosure - Leases (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract_637485565523802571" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_637485565523802571" xlink:to="fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock_637812484141833154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_637812484141833154" />
    <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_637812484141833154" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock" xlink:label="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeasesAbstract_637485565523802571" xlink:to="fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock_637812484141833154" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables" xlink:type="extended" xlink:title="31103 - Disclosure - Income Taxes (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_637812484141833154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_637812484141833154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_637812484141843156" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637812484141843156" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637812484141843156" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_637812484141843156" order="5" 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="31403 - Disclosure - Stockholders' Equity (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_637812484141843156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables" xlink:type="extended" xlink:title="31503 - Disclosure - Stock-Based Compensation (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_StatementTable_637812484141843156" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141843156" xlink:to="us-gaap_AwardTypeAxis_637812484141843156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484141843156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637812484141843156" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484141843156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484141843156" xlink:to="us-gaap_RestrictedStockMember_637812484141853152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141843156" xlink:to="us-gaap_StatementLineItems_637812484141853152" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484141853152" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637812484141853152" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484141853152" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637812484141853152" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484141853152" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637812484141853152" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" xlink:type="extended" xlink:title="31603 - Disclosure - Segment Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637812484141853152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637812484141853152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails" xlink:type="extended" xlink:title="40101 - Disclosure - Business and Organization (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationTable" xlink:label="fix_ScheduleOfBusinessAndOrganizationTable_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="fix_ScheduleOfBusinessAndOrganizationTable_637812484141863155" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ScheduleOfBusinessAndOrganizationTable_637812484141863155" xlink:to="srt_ProductOrServiceAxis_637812484141863155" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_637812484141863155" xlink:to="srt_ProductsAndServicesDomain_637812484141863155" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SystemInstallationInNewlyConstructedFacilitiesMember" xlink:label="fix_SystemInstallationInNewlyConstructedFacilitiesMember_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141863155" xlink:to="fix_SystemInstallationInNewlyConstructedFacilitiesMember_637812484141863155" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MaintenanceRepairAndReplacementServiceMember" xlink:label="fix_MaintenanceRepairAndReplacementServiceMember_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141863155" xlink:to="fix_MaintenanceRepairAndReplacementServiceMember_637812484141863155" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScheduleOfBusinessAndOrganizationLineItems" xlink:label="fix_ScheduleOfBusinessAndOrganizationLineItems_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ScheduleOfBusinessAndOrganizationTable_637812484141863155" xlink:to="fix_ScheduleOfBusinessAndOrganizationLineItems_637812484141863155" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueServicesNetPercentage" xlink:label="fix_SalesRevenueServicesNetPercentage_637812484141863155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ScheduleOfBusinessAndOrganizationLineItems_637812484141863155" xlink:to="fix_SalesRevenueServicesNetPercentage_637812484141863155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails" xlink:type="extended" xlink:title="40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_637812484141873151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_637812484141873151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CashPaidAbstract" xlink:label="fix_CashPaidAbstract_637812484141873151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_637812484141873151" xlink:to="fix_CashPaidAbstract_637812484141873151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet_637812484141873151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_CashPaidAbstract_637812484141873151" xlink:to="us-gaap_InterestPaidNet_637812484141873151" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet_637812484141873151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_CashPaidAbstract_637812484141873151" xlink:to="us-gaap_IncomeTaxesPaidNet_637812484141873151" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails" xlink:type="extended" xlink:title="40203 - Disclosure - Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract_637219533007929795" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_637812484141873151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637219533007929795" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_637812484141873151" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_637812484141873151" xlink:to="srt_ProductOrServiceAxis_637812484141913145" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_637812484141913145" xlink:to="srt_ProductsAndServicesDomain_637812484141913145" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ServicesActivityMember" xlink:label="fix_ServicesActivityMember_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141913145" xlink:to="fix_ServicesActivityMember_637812484141913145" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ConstructionActivitiesMember" xlink:label="fix_ConstructionActivitiesMember_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141913145" xlink:to="fix_ConstructionActivitiesMember_637812484141913145" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductAndServiceOtherMember" xlink:label="us-gaap_ProductAndServiceOtherMember_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141913145" xlink:to="us-gaap_ProductAndServiceOtherMember_637812484141913145" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_637812484141873151" xlink:to="us-gaap_AccountsNotesAndLoansReceivableLineItems_637812484141913145" order="2" use="optional" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems_637812484141913145" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_637812484141913145" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal" xlink:label="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal_637812484141913145" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_637812484141913145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_637812484141913145" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637812484141923159" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AllowanceForDoubtfulAccountsReceivableAcquired" xlink:label="fix_AllowanceForDoubtfulAccountsReceivableAcquired_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="fix_AllowanceForDoubtfulAccountsReceivableAcquired_637812484141923159" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReclassificationOfAllowanceForCreditLosses" xlink:label="fix_ReclassificationOfAllowanceForCreditLosses_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="fix_ReclassificationOfAllowanceForCreditLosses_637812484141923159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_637812484141913145" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_637812484141923159" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails" xlink:type="extended" xlink:title="40205 - Disclosure - Summary of Significant Accounting Policies and Estimates - Risk (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTable" xlink:label="us-gaap_ConcentrationRiskTable_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConcentrationRiskTable_637812484141923159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable_637812484141923159" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_637812484141923159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_637812484141923159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis_637812484141923159" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_637812484141923159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SalesRevenueMember" xlink:label="fix_SalesRevenueMember_637812484141934042" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain_637812484141923159" xlink:to="fix_SalesRevenueMember_637812484141934042" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_637812484141934042" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable_637812484141923159" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_637812484141934042" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain_637812484141934042" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis_637812484141934042" xlink:to="us-gaap_ConcentrationRiskTypeDomain_637812484141934042" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember_637812484141934042" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain_637812484141934042" xlink:to="us-gaap_CustomerConcentrationRiskMember_637812484141934042" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484141934042" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable_637812484141923159" xlink:to="srt_RangeAxis_637812484141934042" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484141934042" xlink:to="srt_RangeMember_637812484141943267" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484141943267" xlink:to="srt_MinimumMember_637812484141943267" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="us-gaap_ConcentrationRiskLineItems_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTable_637812484141923159" xlink:to="us-gaap_ConcentrationRiskLineItems_637812484141943267" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StandardProductWarrantyDisclosureAbstract" xlink:label="us-gaap_StandardProductWarrantyDisclosureAbstract_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskLineItems_637812484141943267" xlink:to="us-gaap_StandardProductWarrantyDisclosureAbstract_637812484141943267" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WarrantyPeriodOfLaborAfterServicing" xlink:label="fix_WarrantyPeriodOfLaborAfterServicing_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StandardProductWarrantyDisclosureAbstract_637812484141943267" xlink:to="fix_WarrantyPeriodOfLaborAfterServicing_637812484141943267" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1_637812484141943267" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskLineItems_637812484141943267" xlink:to="us-gaap_ConcentrationRiskPercentage1_637812484141943267" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails" xlink:type="extended" xlink:title="40206 - Disclosure - Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainOnBusinessInterruptionInsuranceRecovery" xlink:label="us-gaap_GainOnBusinessInterruptionInsuranceRecovery_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GainOnBusinessInterruptionInsuranceRecovery_637812484141953156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GainRecordedAsReductionInSga" xlink:label="fix_GainRecordedAsReductionInSga_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="fix_GainRecordedAsReductionInSga_637812484141953156" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GainRecordedAsReductionInCostOfServicesExpense" xlink:label="fix_GainRecordedAsReductionInCostOfServicesExpense_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="fix_GainRecordedAsReductionInCostOfServicesExpense_637812484141953156" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails" xlink:type="extended" xlink:title="40301 - Disclosure - Revenue from Contracts with Customers - Revenue Recognition (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_1" xlink:to="us-gaap_StatementTable_637812484141953156" order="1" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141953156" xlink:to="srt_RangeAxis_637812484141953156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484141953156" xlink:to="srt_RangeMember_637812484141953156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484141953156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484141953156" xlink:to="srt_MinimumMember_637812484141953156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484141953156" xlink:to="srt_MaximumMember_637812484141963152" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484141953156" xlink:to="us-gaap_StatementLineItems_637812484141963152" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRecognitionAbstract" xlink:label="us-gaap_RevenueRecognitionAbstract_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484141963152" xlink:to="us-gaap_RevenueRecognitionAbstract_637812484141963152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesLongTermContractsOrProgramsAbstract" xlink:label="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRecognitionAbstract_637812484141963152" xlink:to="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms_637812484141963152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram" xlink:label="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram_637812484141963152" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BilledContractReceivablesContractsInProgress" xlink:label="fix_BilledContractReceivablesContractsInProgress_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_BilledContractReceivablesContractsInProgress_637812484141963152" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnbilledContractsReceivable" xlink:label="us-gaap_UnbilledContractsReceivable_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_UnbilledContractsReceivable_637812484141963152" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_UnbilledAccountsReceivableAllowanceForCreditLoss" xlink:label="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_UnbilledAccountsReceivableAllowanceForCreditLoss_637812484141963152" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContractReceivablesContractsInProcessNetReceivableLiability" xlink:label="fix_ContractReceivablesContractsInProcessNetReceivableLiability_637812484141963152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_ContractReceivablesContractsInProcessNetReceivableLiability_637812484141963152" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_637812484141973145" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CostsInExcessOfBillingsAllowanceForCreditLosses" xlink:label="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_CostsInExcessOfBillingsAllowanceForCreditLosses_637812484141973145" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637812484141973145" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RetentionProvisionsConstructionContractsHoldingPeriod" xlink:label="fix_RetentionProvisionsConstructionContractsHoldingPeriod_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_RetentionProvisionsConstructionContractsHoldingPeriod_637812484141973145" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionContractorReceivableRetainage" xlink:label="us-gaap_ConstructionContractorReceivableRetainage_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_ConstructionContractorReceivableRetainage_637812484141973145" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ConstructionContractorRetainagePayable" xlink:label="fix_ConstructionContractorRetainagePayable_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_ConstructionContractorRetainagePayable_637812484141973145" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms" xlink:label="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms_637812484141973145" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReceivableDueTerm" xlink:label="fix_ReceivableDueTerm_637812484141973145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_ReceivableDueTerm_637812484141973145" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PaymentsReceivedTerm" xlink:label="fix_PaymentsReceivedTerm_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesLongTermContractsOrProgramsAbstract_637812484141963152" xlink:to="fix_PaymentsReceivedTerm_637812484141983145" order="15" 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="40302 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable_637812484141983145" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_637812484141983145" xlink:to="srt_ProductOrServiceAxis_637812484141983145" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_637812484141983145" xlink:to="srt_ProductsAndServicesDomain_637812484141983145" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalServicesMember" xlink:label="fix_MechanicalServicesMember_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141983145" xlink:to="fix_MechanicalServicesMember_637812484141983145" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesMember" xlink:label="fix_ElectricalServicesMember_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637812484141983145" xlink:to="fix_ElectricalServicesMember_637812484141983145" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_637812484141983145" xlink:to="us-gaap_StatementBusinessSegmentsAxis_637812484141983145" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_637812484141983145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_637812484141983145" xlink:to="us-gaap_SegmentDomain_637812484141983145" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_NewConstructionMember" xlink:label="fix_NewConstructionMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484141983145" xlink:to="fix_NewConstructionMember_637812484141993153" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ExistingBuildingConstructionMember" xlink:label="fix_ExistingBuildingConstructionMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484141983145" xlink:to="fix_ExistingBuildingConstructionMember_637812484141993153" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ServiceProjectsMember" xlink:label="fix_ServiceProjectsMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484141983145" xlink:to="fix_ServiceProjectsMember_637812484141993153" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ServiceCallsMaintenanceAndMonitoringMember" xlink:label="fix_ServiceCallsMaintenanceAndMonitoringMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484141983145" xlink:to="fix_ServiceCallsMaintenanceAndMonitoringMember_637812484141993153" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_637812484141983145" xlink:to="srt_MajorCustomersAxis_637812484141993153" order="3" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis_637812484141993153" xlink:to="srt_NameOfMajorCustomerDomain_637812484141993153" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IndustrialPropertyCustomerMember" xlink:label="fix_IndustrialPropertyCustomerMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_IndustrialPropertyCustomerMember_637812484141993153" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EducationMember" xlink:label="fix_EducationMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_EducationMember_637812484141993153" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_OfficeBuildingCustomerMember" xlink:label="fix_OfficeBuildingCustomerMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_OfficeBuildingCustomerMember_637812484141993153" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_HealthcareSectorCustomerMember" xlink:label="fix_HealthcareSectorCustomerMember_637812484141993153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_HealthcareSectorCustomerMember_637812484141993153" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_GovernmentCustomerMember" xlink:label="fix_GovernmentCustomerMember_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_GovernmentCustomerMember_637812484142003145" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RetailRestaurantsAndEntertainmentMember" xlink:label="fix_RetailRestaurantsAndEntertainmentMember_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_RetailRestaurantsAndEntertainmentMember_637812484142003145" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MultiFamilyAndResidentialMember" xlink:label="fix_MultiFamilyAndResidentialMember_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="fix_MultiFamilyAndResidentialMember_637812484142003145" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCustomerMember" xlink:label="us-gaap_OtherCustomerMember_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain_637812484141993153" xlink:to="us-gaap_OtherCustomerMember_637812484142003145" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable_637812484141983145" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_637812484142003145" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems_637812484142003145" xlink:to="us-gaap_Revenues_637812484142003145" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfRevenueFromContractWithCustomer" xlink:label="fix_PercentageOfRevenueFromContractWithCustomer_637812484142003145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems_637812484142003145" xlink:to="fix_PercentageOfRevenueFromContractWithCustomer_637812484142003145" 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="40303 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_637812484142013147" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_637812484142013147" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_637812484142013147" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain" xlink:label="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_637812484142013147" xlink:to="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_637812484142013147" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member" xlink:label="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain_637812484142013147" xlink:to="us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_637812484142013147" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems" xlink:label="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable_637812484142013147" xlink:to="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_637812484142013147" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInContractWithCustomerAssetAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_637812484142013147" xlink:to="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_637812484142013147" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination_637812484142013147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal" xlink:label="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal_637812484142013147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" xlink:to="us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal_637812484142013147" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional" xlink:label="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" xlink:to="fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional_637812484142023153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerAssetAbstract_637812484142013147" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_637812484142023153" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:label="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_637812484142013147" xlink:to="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637812484142023153" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637812484142023153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" xlink:to="us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_637812484142023153" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_6378124841420231531" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInContractWithCustomerLiabilityAbstract_637812484142023153" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_6378124841420231531" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637812484142023153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems_637812484142013147" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637812484142023153" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" xlink:type="extended" xlink:title="40304 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637812484142033147" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637812484142033147" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637812484142033147" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637812484142033147" xlink:to="srt_RangeAxis_637812484142033147" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142033147" xlink:to="srt_RangeMember_637812484142033147" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142033147" xlink:to="srt_MinimumMember_637812484142033147" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142033147" xlink:to="srt_MaximumMember_637812484142033147" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637812484142033147" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_637812484142033147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_637812484142033147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_637812484142043161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_637812484142043161" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RenewableServiceMaintenanceAgreementsTerm" xlink:label="fix_RenewableServiceMaintenanceAgreementsTerm_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" xlink:to="fix_RenewableServiceMaintenanceAgreementsTerm_637812484142043161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation" xlink:label="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637812484142033147" xlink:to="us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation_637812484142043161" 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="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_DerivativeInstrumentRiskAxis_637812484142043161" order="1" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis_637812484142043161" xlink:to="us-gaap_DerivativeContractTypeDomain_637812484142043161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember_637812484142043161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeContractTypeDomain_637812484142043161" xlink:to="us-gaap_InterestRateSwapMember_637812484142043161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis_637812484142053152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis_637812484142053152" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_637812484142053152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain_637812484142053152" xlink:to="us-gaap_FairValueMeasurementsRecurringMember_637812484142053152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsNonrecurringMember" xlink:label="us-gaap_FairValueMeasurementsNonrecurringMember_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain_637812484142053152" xlink:to="us-gaap_FairValueMeasurementsNonrecurringMember_637812484142053152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_637812484142053152" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_637812484142053152" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637812484142053152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637812484142053152" xlink:to="us-gaap_FairValueInputsLevel1Member_637812484142053152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637812484142053152" xlink:to="us-gaap_FairValueInputsLevel2Member_637812484142053152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637812484142053152" xlink:to="us-gaap_FairValueInputsLevel3Member_637812484142053152" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByLiabilityClassAxis" xlink:label="us-gaap_FairValueByLiabilityClassAxis_637812484142053152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_FairValueByLiabilityClassAxis_637812484142053152" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByLiabilityClassAxis_637812484142053152" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContingentConsiderationObligationsMember" xlink:label="fix_ContingentConsiderationObligationsMember_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain_637812484142063144" xlink:to="fix_ContingentConsiderationObligationsMember_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByMeasurementBasisAxis" xlink:label="us-gaap_FairValueByMeasurementBasisAxis_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_FairValueByMeasurementBasisAxis_637812484142063144" order="5" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PortionAtFairValueFairValueDisclosureMember" xlink:label="us-gaap_PortionAtFairValueFairValueDisclosureMember_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementBasisAxis_637812484142063144" xlink:to="us-gaap_PortionAtFairValueFairValueDisclosureMember_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EstimateOfFairValueFairValueDisclosureMember" xlink:label="us-gaap_EstimateOfFairValueFairValueDisclosureMember_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PortionAtFairValueFairValueDisclosureMember_637812484142063144" xlink:to="us-gaap_EstimateOfFairValueFairValueDisclosureMember_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_HedgingDesignationAxis_637812484142063144" order="6" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis_637812484142063144" xlink:to="us-gaap_HedgingDesignationDomain_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember" xlink:label="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationDomain_637812484142063144" xlink:to="us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_637812484142063144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142063144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="srt_RangeAxis_637812484142063144" order="7" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142063144" xlink:to="srt_RangeMember_637812484142073137" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142073137" xlink:to="srt_MinimumMember_637812484142073137" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142073137" xlink:to="srt_MaximumMember_637812484142073137" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_637812484142043161" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DerivativeInstrumentNotionalAmount" xlink:label="fix_DerivativeInstrumentNotionalAmount_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_DerivativeInstrumentNotionalAmount_637812484142073137" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DerivativeNetLossOnDerivative" xlink:label="fix_DerivativeNetLossOnDerivative_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_DerivativeNetLossOnDerivative_637812484142073137" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsFairValueDisclosure" xlink:label="us-gaap_CashAndCashEquivalentsFairValueDisclosure_637812484142073137" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_CashAndCashEquivalentsFairValueDisclosure_637812484142073137" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashSurrenderValueFairValueDisclosure" xlink:label="us-gaap_CashSurrenderValueFairValueDisclosure_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_CashSurrenderValueFairValueDisclosure_637812484142083145" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate" xlink:label="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate_637812484142083145" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:label="us-gaap_DerivativeFairValueOfDerivativeLiability_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_DerivativeFairValueOfDerivativeLiability_637812484142083145" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LifeInsuranceContractsNumberOfEmployeesCovered" xlink:label="fix_LifeInsuranceContractsNumberOfEmployeesCovered_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_LifeInsuranceContractsNumberOfEmployeesCovered_637812484142083145" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LifeInsuranceContractsFaceAmount" xlink:label="fix_LifeInsuranceContractsFaceAmount_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_LifeInsuranceContractsFaceAmount_637812484142083145" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashSurrenderValueOfLifeInsurance" xlink:label="us-gaap_CashSurrenderValueOfLifeInsurance_637812484142083145" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_CashSurrenderValueOfLifeInsurance_637812484142083145" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WeightedAverageCostOfCapital" xlink:label="fix_WeightedAverageCostOfCapital_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="fix_WeightedAverageCostOfCapital_637812484142093143" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637812484142093143" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues_637812484142093143" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_637812484142093143" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_637812484142093143" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_637812484142093143" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637812484142103144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward_637812484142093143" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637812484142103144" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss_637812484142103144" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_637812484142073137" xlink:to="us-gaap_GoodwillImpairmentLoss_637812484142103144" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract_636970798723497116" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142103144" />
    <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_637812484142103144" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142103144" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484142113161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484142113161" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142113161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142113161" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142113161" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142103144" xlink:to="us-gaap_BusinessAcquisitionLineItems_637812484142113161" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredAbstract" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142113161" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_637812484142113161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484142113161" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484142113161" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484142113161" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484142113161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_637812484142113161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredAbstract_637812484142113161" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_637812484142113161" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142113161" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_637812484142123147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_637812484142123147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_637812484142123147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637812484142123147" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_Goodwill_637812484142123147" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484142123147" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_637812484142123147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_637812484142123147" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="7" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_637812484142133142" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings_637812484142133142" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt_637812484142133142" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent_637812484142133142" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_637812484142133142" order="12" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_637812484142133142" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent_637812484142133142" order="13" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_637812484142143163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_637812484142143163" order="14" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_637812484142143163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract_637812484142123147" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_637812484142143163" order="15" 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="40502 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_637812484142143163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_637812484142143163" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484142143163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_637812484142143163" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484142143163" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142143163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484142143163" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142143163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142143163" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142153160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_637812484142143163" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142153160" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142153160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142153160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142153160" xlink:to="us-gaap_OrderOrProductionBacklogMember_637812484142153160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142153160" xlink:to="us-gaap_TradeNamesMember_637812484142153160" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142153160" xlink:to="us-gaap_CustomerRelationshipsMember_637812484142153160" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable_637812484142143163" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_637812484142153160" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_637812484142153160" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_637812484142153160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484142153160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems_637812484142153160" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637812484142153160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails" xlink:type="extended" xlink:title="40503 - Disclosure - Acquisitions - Contingent Earn-out Obligation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract_636970801912157231" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract_636970801912157231" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484142163154" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484142163154" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142163154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142163154" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142163154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" xlink:to="srt_RangeAxis_637812484142163154" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142163154" xlink:to="srt_RangeMember_637812484142163154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142163154" xlink:to="srt_MinimumMember_637812484142163154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142163154" xlink:to="srt_MaximumMember_637812484142163154" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_637812484142163154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" xlink:to="us-gaap_IncomeTaxAuthorityAxis_637812484142163154" order="3" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_637812484142163154" xlink:to="us-gaap_IncomeTaxAuthorityDomain_637812484142173146" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637812484142173146" xlink:to="us-gaap_DomesticCountryMember_637812484142173146" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637812484142173146" xlink:to="us-gaap_StateAndLocalJurisdictionMember_637812484142173146" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" xlink:to="us-gaap_MeasurementInputTypeAxis_637812484142173146" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeAxis_637812484142173146" xlink:to="us-gaap_MeasurementInputTypeDomain_637812484142173146" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputInceptionDiscountRateMember" xlink:label="us-gaap_MeasurementInputInceptionDiscountRateMember_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_637812484142173146" xlink:to="us-gaap_MeasurementInputInceptionDiscountRateMember_637812484142173146" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142163154" xlink:to="us-gaap_BusinessAcquisitionLineItems_637812484142173146" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_NumberOfMilestoneEarnings" xlink:label="fix_NumberOfMilestoneEarnings_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="fix_NumberOfMilestoneEarnings_637812484142173146" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="us-gaap_Revenues_637812484142173146" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_637812484142173146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_637812484142173146" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637812484142183147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637812484142183147" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards_637812484142183147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="us-gaap_OperatingLossCarryforwards_637812484142183147" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod" xlink:label="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_637812484142183147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod_637812484142183147" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CashFlowDiscountRate" xlink:label="fix_CashFlowDiscountRate_637812484142183147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142173146" xlink:to="fix_CashFlowDiscountRate_637812484142183147" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" xlink:type="extended" xlink:title="40504 - Disclosure - Acquisitions - Other Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract_636970784215205653" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142183147" />
    <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_637812484142183147" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142183147" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484142193157" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484142193157" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MepHoldingCo.IncMember" xlink:label="fix_MepHoldingCo.IncMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_MepHoldingCo.IncMember_637812484142193157" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorKentuckyMember" xlink:label="fix_MechanicalContractorKentuckyMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_MechanicalContractorKentuckyMember_637812484142193157" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorIndianaMember" xlink:label="fix_MechanicalContractorIndianaMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_MechanicalContractorIndianaMember_637812484142193157" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IveyMechanicalCompanyLlcMember" xlink:label="fix_IveyMechanicalCompanyLlcMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_IveyMechanicalCompanyLlcMember_637812484142193157" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TasEnergyIncMember" xlink:label="fix_TasEnergyIncMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_TasEnergyIncMember_637812484142193157" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_637812484142193157" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TECIndustrialConstructionAndMaintenanceMember" xlink:label="fix_TECIndustrialConstructionAndMaintenanceMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_TECIndustrialConstructionAndMaintenanceMember_637812484142193157" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalContractorNorthCarolinaMember" xlink:label="fix_ElectricalContractorNorthCarolinaMember_637812484142193157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_ElectricalContractorNorthCarolinaMember_637812484142193157" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalContractorUtahMember" xlink:label="fix_MechanicalContractorUtahMember_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142193157" xlink:to="fix_MechanicalContractorUtahMember_637812484142203318" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637812484142183147" xlink:to="us-gaap_BusinessAcquisitionLineItems_637812484142203318" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="us-gaap_NumberOfBusinessesAcquired_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="us-gaap_NumberOfBusinessesAcquired_637812484142203318" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_637812484142203318" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill" xlink:label="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill_637812484142203318" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_637812484142203318" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment_637812484142203318" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637812484142203318" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BusinessCombinationConsiderationTransferredContingentEarnOut" xlink:label="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484142203318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="fix_BusinessCombinationConsiderationTransferredContingentEarnOut_637812484142203318" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ContingentEarnOutObligationToAcquireBusiness" xlink:label="fix_ContingentEarnOutObligationToAcquireBusiness_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="fix_ContingentEarnOutObligationToAcquireBusiness_637812484142213146" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredOther1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637812484142203318" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredOther1_637812484142213146" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" xlink:type="extended" xlink:title="40601 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable_637812484142213146" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_637812484142213146" xlink:to="us-gaap_StatementBusinessSegmentsAxis_637812484142213146" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_637812484142213146" xlink:to="us-gaap_SegmentDomain_637812484142213146" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalServicesIndustryMember" xlink:label="fix_MechanicalServicesIndustryMember_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484142213146" xlink:to="fix_MechanicalServicesIndustryMember_637812484142213146" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesIndustryMember" xlink:label="fix_ElectricalServicesIndustryMember_637812484142213146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484142213146" xlink:to="fix_ElectricalServicesIndustryMember_637812484142213146" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_637812484142213146" xlink:to="us-gaap_GoodwillLineItems_637812484142223154" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillRollForward" xlink:label="us-gaap_GoodwillRollForward_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_637812484142223154" xlink:to="us-gaap_GoodwillRollForward_637812484142223154" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_637812484142223154" xlink:to="us-gaap_Goodwill_637812484142223154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_637812484142223154" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_637812484142223154" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillOtherIncreaseDecrease" xlink:label="us-gaap_GoodwillOtherIncreaseDecrease_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_637812484142223154" xlink:to="us-gaap_GoodwillOtherIncreaseDecrease_637812484142223154" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_6378124841422231541" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_637812484142223154" xlink:to="us-gaap_Goodwill_6378124841422231541" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairedAccumulatedImpairmentLoss" xlink:label="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss_637812484142223154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillRollForward_637812484142223154" xlink:to="us-gaap_GoodwillImpairedAccumulatedImpairmentLoss_637812484142223154" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="40602 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_635533014793481467" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637812484142223154" />
    <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_637812484142223154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637812484142223154" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142233156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637812484142233156" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" xlink:to="us-gaap_CustomerRelationshipsMember_637812484142233156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrderOrProductionBacklogMember" xlink:label="us-gaap_OrderOrProductionBacklogMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" xlink:to="us-gaap_OrderOrProductionBacklogMember_637812484142233156" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" xlink:to="us-gaap_TradeNamesMember_637812484142233156" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember" xlink:label="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637812484142233156" xlink:to="fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_637812484142233156" order="4" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637812484142223154" xlink:to="srt_RangeAxis_637812484142233156" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142233156" xlink:to="srt_RangeMember_637812484142233156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142233156" xlink:to="srt_MinimumMember_637812484142233156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142233156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142233156" xlink:to="srt_MaximumMember_637812484142233156" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637812484142223154" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637812484142243160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_637812484142243160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637812484142243160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637812484142243160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637812484142243160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637812484142243160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637812484142243160" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637812484142243160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637812484142243160" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637812484142253146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637812484142253146" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_637812484142253146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_637812484142243160" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_637812484142253146" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails" xlink:type="extended" xlink:title="40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637812484142253146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_StatementTable_637812484142253146" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637812484142253146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484142253146" xlink:to="dei_LegalEntityAxis_637812484142253146" order="1" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637812484142253146" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637812484142253146" xlink:to="dei_EntityDomain_637812484142253146" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_EntityDomain_637812484142253146" xlink:to="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_637812484142263161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484142253146" xlink:to="us-gaap_StatementLineItems_637812484142263161" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetImpairmentChargesAbstract" xlink:label="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142263161" xlink:to="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" xlink:to="us-gaap_GoodwillImpairmentLoss_637812484142263161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637812484142263161" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfFairValuesInExcessOfCarryingValue" xlink:label="fix_PercentageOfFairValuesInExcessOfCarryingValue_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" xlink:to="fix_PercentageOfFairValuesInExcessOfCarryingValue_637812484142263161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetImpairmentChargesAbstract_637812484142263161" xlink:to="us-gaap_Goodwill_637812484142263161" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40701 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_635532949487620097" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637812484142263161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract_635532949487620097" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637812484142263161" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637812484142263161" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637812484142273165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637812484142273165" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LandMember" xlink:label="us-gaap_LandMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="us-gaap_LandMember_637812484142273165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TransportationEquipmentMember" xlink:label="us-gaap_TransportationEquipmentMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="us-gaap_TransportationEquipmentMember_637812484142273165" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="us-gaap_MachineryAndEquipmentMember_637812484142273165" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ComputerAndTelephoneEquipmentMember" xlink:label="fix_ComputerAndTelephoneEquipmentMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="fix_ComputerAndTelephoneEquipmentMember_637812484142273165" order="4" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_BuildingAndLeaseholdImprovementsMember" xlink:label="fix_BuildingAndLeaseholdImprovementsMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="fix_BuildingAndLeaseholdImprovementsMember_637812484142273165" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="us-gaap_FurnitureAndFixturesMember_637812484142273165" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637812484142273165" xlink:to="us-gaap_ConstructionInProgressMember_637812484142273165" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637812484142263161" xlink:to="srt_RangeAxis_637812484142273165" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142273165" xlink:to="srt_RangeMember_637812484142273165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142273165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142273165" xlink:to="srt_MinimumMember_637812484142273165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142273165" xlink:to="srt_MaximumMember_637812484142283147" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637812484142263161" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_637812484142283147" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637812484142283147" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637812484142283147" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637812484142283147" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization_637812484142283147" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637812484142283147" xlink:to="us-gaap_DepreciationAndAmortization_637812484142283147" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Detail of Other Current Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrentAbstract" xlink:label="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent_637812484142293168" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637812484142293168" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_OperatingLeaseLiability_637812484142293168" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AccruedJobLosses" xlink:label="fix_AccruedJobLosses_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="fix_AccruedJobLosses_637812484142293168" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent_637812484142293168" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_DeferredRevenueCurrent_637812484142293168" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LiabilitiesDueToFormerOwnersCurrent" xlink:label="fix_LiabilitiesDueToFormerOwnersCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="fix_LiabilitiesDueToFormerOwnersCurrent_637812484142293168" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherSundryLiabilitiesCurrent" xlink:label="us-gaap_OtherSundryLiabilitiesCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_OtherSundryLiabilitiesCurrent_637812484142293168" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent_637812484142293168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherLiabilitiesCurrentAbstract_637812484142293168" xlink:to="us-gaap_OtherLiabilitiesCurrent_637812484142293168" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Debt Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract_635532868937224449" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_637812484142303151" />
    <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_637812484142303151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142303151" xlink:to="us-gaap_DebtInstrumentAxis_637812484142303151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_637812484142303151" xlink:to="us-gaap_DebtInstrumentNameDomain_637812484142303151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142303151" xlink:to="us-gaap_RevolvingCreditFacilityMember_637812484142303151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TermLoanMember" xlink:label="fix_TermLoanMember_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142303151" xlink:to="fix_TermLoanMember_637812484142303151" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142303151" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_637812484142303151" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableMember" xlink:label="us-gaap_LoansPayableMember_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SubordinateDebtAndPromissoryNoteMember_637812484142303151" xlink:to="us-gaap_LoansPayableMember_637812484142303151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_637812484142303151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142303151" xlink:to="us-gaap_DebtInstrumentLineItems_637812484142303151" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_NotesAndLoansPayable_637812484142313163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_FinanceLeaseLiability_637812484142313163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_DebtLongtermAndShorttermCombinedAmount_637812484142313163" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet_637812484142313163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_LongTermDebt_637812484142313163" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/netLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_LongTermDebtCurrent_637812484142313163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142303151" xlink:to="us-gaap_LongTermDebtNoncurrent_637812484142313163" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails" xlink:type="extended" xlink:title="40902 - Disclosure - Debt Obligations - Future Payments (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract_635532871398576671" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtByMaturityAbstract" xlink:label="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract_635532871398576671" xlink:to="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_637812484142323374" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484142323374" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484142323374" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_637812484142323374" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtAndCapitalLeaseObligations" xlink:label="us-gaap_DebtAndCapitalLeaseObligations_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtByMaturityAbstract_637812484142313163" xlink:to="us-gaap_DebtAndCapitalLeaseObligations_637812484142323374" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpenseAbstract" xlink:label="us-gaap_InterestExpenseAbstract_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract_635532871398576671" xlink:to="us-gaap_InterestExpenseAbstract_637812484142323374" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpenseRelatedParty" xlink:label="us-gaap_InterestExpenseRelatedParty_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="us-gaap_InterestExpenseRelatedParty_637812484142323374" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts" xlink:label="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts_637812484142323374" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestExpenseOnInterestRateSwaps" xlink:label="fix_InterestExpenseOnInterestRateSwaps_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="fix_InterestExpenseOnInterestRateSwaps_637812484142323374" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="us-gaap_FinanceLeaseInterestExpense_637812484142323374" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LetterOfCreditFeesAmount" xlink:label="fix_LetterOfCreditFeesAmount_637812484142323374" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="fix_LetterOfCreditFeesAmount_637812484142323374" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfFinancingCostsAndDiscounts" xlink:label="us-gaap_AmortizationOfFinancingCostsAndDiscounts_637812484142333156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="us-gaap_AmortizationOfFinancingCostsAndDiscounts_637812484142333156" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_637812484142333156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InterestExpenseAbstract_637812484142323374" xlink:to="us-gaap_InterestExpense_637812484142333156" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="6" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" xlink:type="extended" xlink:title="40903 - Disclosure - Debt Obligations - Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_637812484142333156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable_637812484142333156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationAxis" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_637812484142333156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_637812484142333156" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSecondaryClassificationDomain" xlink:label="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationAxis_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateFederalFundsRateMember" xlink:label="fix_DebtInstrumentVariableRateFederalFundsRateMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateFederalFundsRateMember_637812484142343166" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember" xlink:label="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_637812484142343166" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateOneMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateOneMonthLIBORMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateOneMonthLIBORMember_637812484142343166" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateSixMonthLIBORMember" xlink:label="fix_DebtInstrumentVariableRateSixMonthLIBORMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentVariableRateSecondaryClassificationDomain_637812484142333156" xlink:to="fix_DebtInstrumentVariableRateSixMonthLIBORMember_637812484142343166" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="us-gaap_DebtInstrumentAxis_637812484142343166" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_637812484142343166" xlink:to="us-gaap_DebtInstrumentNameDomain_637812484142343166" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="us-gaap_RevolvingCreditFacilityMember_637812484142343166" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmendedSeniorRevolvingCreditFacilityMember" xlink:label="fix_AmendedSeniorRevolvingCreditFacilityMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="fix_AmendedSeniorRevolvingCreditFacilityMember_637812484142343166" order="2" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TermLoanMember" xlink:label="fix_TermLoanMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="fix_TermLoanMember_637812484142343166" order="3" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SubordinateDebtAndPromissoryNoteMember" xlink:label="fix_SubordinateDebtAndPromissoryNoteMember_637812484142343166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="fix_SubordinateDebtAndPromissoryNoteMember_637812484142343166" order="4" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableMember" xlink:label="us-gaap_LoansPayableMember_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SubordinateDebtAndPromissoryNoteMember_637812484142343166" xlink:to="us-gaap_LoansPayableMember_637812484142353169" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LetterOfCreditMember" xlink:label="us-gaap_LetterOfCreditMember_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="us-gaap_LetterOfCreditMember_637812484142353169" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotesPayableOtherPayablesMember" xlink:label="us-gaap_NotesPayableOtherPayablesMember_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637812484142343166" xlink:to="us-gaap_NotesPayableOtherPayablesMember_637812484142353169" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="us-gaap_VariableRateAxis_637812484142353169" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis_637812484142353169" xlink:to="us-gaap_VariableRateDomain_637812484142353169" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentVariableRateBaseRateMember" xlink:label="fix_DebtInstrumentVariableRateBaseRateMember_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_637812484142353169" xlink:to="fix_DebtInstrumentVariableRateBaseRateMember_637812484142353169" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EurodollarMember" xlink:label="us-gaap_EurodollarMember_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_637812484142353169" xlink:to="us-gaap_EurodollarMember_637812484142353169" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142353169" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="srt_RangeAxis_637812484142353169" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142353169" xlink:to="srt_RangeMember_637812484142363154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142363154" xlink:to="srt_MinimumMember_637812484142363154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142363154" xlink:to="srt_MaximumMember_637812484142363154" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioAxis" xlink:label="fix_DebtCovenantRatioAxis_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="fix_DebtCovenantRatioAxis_637812484142363154" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioDomain" xlink:label="fix_DebtCovenantRatioDomain_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioAxis_637812484142363154" xlink:to="fix_DebtCovenantRatioDomain_637812484142363154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioRangeOneMember" xlink:label="fix_DebtCovenantRatioRangeOneMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_637812484142363154" xlink:to="fix_DebtCovenantRatioRangeOneMember_637812484142363154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioRangeTwoMember" xlink:label="fix_DebtCovenantRatioRangeTwoMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_637812484142363154" xlink:to="fix_DebtCovenantRatioRangeTwoMember_637812484142363154" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioRangeThreeMember" xlink:label="fix_DebtCovenantRatioRangeThreeMember_637812484142363154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_637812484142363154" xlink:to="fix_DebtCovenantRatioRangeThreeMember_637812484142363154" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantRatioRangeFourMember" xlink:label="fix_DebtCovenantRatioRangeFourMember_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantRatioDomain_637812484142363154" xlink:to="fix_DebtCovenantRatioRangeFourMember_637812484142373163" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="srt_StatementScenarioAxis_637812484142373163" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis_637812484142373163" xlink:to="srt_ScenarioUnspecifiedDomain_637812484142373163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ScenarioCovenantRequirementMember" xlink:label="fix_ScenarioCovenantRequirementMember_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ScenarioUnspecifiedDomain_637812484142373163" xlink:to="fix_ScenarioCovenantRequirementMember_637812484142373163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateAxis" xlink:label="fix_DebtCovenantEffectiveDateAxis_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="fix_DebtCovenantEffectiveDateAxis_637812484142373163" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtCovenantEffectiveDateDomain" xlink:label="fix_DebtCovenantEffectiveDateDomain_637812484142373163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantEffectiveDateAxis_637812484142373163" xlink:to="fix_DebtCovenantEffectiveDateDomain_637812484142373163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ThroughMaturityMember" xlink:label="fix_ThroughMaturityMember_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtCovenantEffectiveDateDomain_637812484142373163" xlink:to="fix_ThroughMaturityMember_637812484142383151" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="us-gaap_BusinessAcquisitionAxis_637812484142383151" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637812484142383151" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MepHoldingCo.IncMember" xlink:label="fix_MepHoldingCo.IncMember_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" xlink:to="fix_MepHoldingCo.IncMember_637812484142383151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IveyMechanicalCompanyLlcMember" xlink:label="fix_IveyMechanicalCompanyLlcMember_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" xlink:to="fix_IveyMechanicalCompanyLlcMember_637812484142383151" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_637812484142383151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" xlink:to="fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_637812484142383151" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember" xlink:label="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" xlink:to="fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_637812484142393148" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember" xlink:label="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637812484142383151" xlink:to="us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_637812484142393148" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637812484142333156" xlink:to="us-gaap_DebtInstrumentLineItems_637812484142393148" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637812484142393148" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount" xlink:label="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount_637812484142393148" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LineOfCreditBorrowingCapacityAccordionOption" xlink:label="fix_LineOfCreditBorrowingCapacityAccordionOption_637812484142393148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_LineOfCreditBorrowingCapacityAccordionOption_637812484142393148" order="3" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfSeniorDebt" xlink:label="us-gaap_RepaymentsOfSeniorDebt_637812484142403161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_RepaymentsOfSeniorDebt_637812484142403161" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts_637812484142403161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_PaymentsOfFinancingCosts_637812484142403161" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PaymentsOfFinancingCostsTermLoan" xlink:label="fix_PaymentsOfFinancingCostsTermLoan_637812484142403161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_PaymentsOfFinancingCostsTermLoan_637812484142403161" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit_637812484142403161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LineOfCredit_637812484142403161" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="us-gaap_DebtLongtermAndShorttermCombinedAmount_637812484142403161" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_DebtLongtermAndShorttermCombinedAmount_637812484142403161" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_637812484142413151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_637812484142413151" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_637812484142413151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_637812484142413151" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition" xlink:label="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition_637812484142413151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition_637812484142413151" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_637812484142413151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters_637812484142413151" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract" xlink:label="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss_637812484142424090" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" xlink:to="us-gaap_ProfitLoss_637812484142424090" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484142424090" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484142424090" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization_637812484142424090" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" xlink:to="us-gaap_DepreciationAndAmortization_637812484142424090" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_637812484142433150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract_637812484142423156" xlink:to="us-gaap_ShareBasedCompensation_637812484142433150" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentFinancialCovenantsAbstract" xlink:label="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentInterestRateOptionsNumber" xlink:label="fix_DebtInstrumentInterestRateOptionsNumber_637812484142433150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentInterestRateOptionsNumber_637812484142433150" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantLeverageRatio" xlink:label="fix_DebtInstrumentCovenantLeverageRatio_637812484142433150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantLeverageRatio_637812484142433150" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantFixedChargeCoverageRatio" xlink:label="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_637812484142443156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantFixedChargeCoverageRatio_637812484142443156" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters" xlink:label="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_637812484142443156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters_637812484142443156" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_637812484142443156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction_637812484142443156" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_637812484142443156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions_637812484142443156" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio" xlink:label="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_637812484142443156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio_637812484142443156" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins" xlink:label="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_637812484142453148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_DebtInstrumentFinancialCovenantsAbstract_637812484142433150" xlink:to="fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins_637812484142453148" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MarketRatesAbstract" xlink:label="fix_MarketRatesAbstract_637812484142453148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_MarketRatesAbstract_637812484142453148" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentDescriptionOfVariableRateBasis" xlink:label="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis_637812484142453148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_MarketRatesAbstract_637812484142453148" xlink:to="us-gaap_DebtInstrumentDescriptionOfVariableRateBasis_637812484142453148" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DebtInstrumentMarketRate" xlink:label="fix_DebtInstrumentMarketRate_637812484142463152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_MarketRatesAbstract_637812484142453148" xlink:to="fix_DebtInstrumentMarketRate_637812484142463152" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_637812484142463152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_637812484142463152" order="16" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_637812484142463152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract_637812484142463152" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_637812484142463152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LetterOfCreditFeesPercentage" xlink:label="fix_LetterOfCreditFeesPercentage_637812484142473162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="fix_LetterOfCreditFeesPercentage_637812484142473162" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_637812484142473162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_637812484142473162" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_637812484142473162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage_637812484142473162" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtOtherDisclosuresAbstract" xlink:label="us-gaap_LongTermDebtOtherDisclosuresAbstract_637812484142473162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LongTermDebtOtherDisclosuresAbstract_637812484142473162" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CumulativeNumberOfCompaniesAcquired" xlink:label="fix_CumulativeNumberOfCompaniesAcquired_637812484142483153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract_637812484142473162" xlink:to="fix_CumulativeNumberOfCompaniesAcquired_637812484142483153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NotesAndLoansPayable" xlink:label="us-gaap_NotesAndLoansPayable_637812484142483153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract_637812484142473162" xlink:to="us-gaap_NotesAndLoansPayable_637812484142483153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_637812484142483153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongTermDebtOtherDisclosuresAbstract_637812484142473162" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_637812484142483153" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfBusinessesAcquired" xlink:label="us-gaap_NumberOfBusinessesAcquired_637812484142493148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_NumberOfBusinessesAcquired_637812484142493148" order="21" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484142493148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_637812484142493148" order="22" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484142493148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637812484142393148" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_637812484142493148" order="23" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract_637485584468075670" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable_637812484142503152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637485584468075670" xlink:to="us-gaap_LesseeLeaseDescriptionTable_637812484142503152" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142503152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_637812484142503152" xlink:to="srt_RangeAxis_637812484142503152" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142503152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142503152" xlink:to="srt_RangeMember_637812484142503152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142503152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142503152" xlink:to="srt_MinimumMember_637812484142503152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142513166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142503152" xlink:to="srt_MaximumMember_637812484142513166" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_637812484142503152" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_FinanceLeaseLiability_637812484142583136" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList_637812484142583136" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_VariableLeaseAndShortTermLeaseCost" xlink:label="fix_VariableLeaseAndShortTermLeaseCost_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="fix_VariableLeaseAndShortTermLeaseCost_637812484142583136" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637812484142583136" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_OperatingLeaseExpense_637812484142583136" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract_637812484142583136" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_NumberOfOptionsToRenew" xlink:label="fix_NumberOfOptionsToRenew_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="fix_NumberOfOptionsToRenew_637812484142583136" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637812484142583136" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRent" xlink:label="us-gaap_PaymentsForRent_637812484142583136" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_PaymentsForRent_637812484142583136" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend" xlink:label="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637812484142513166" xlink:to="us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend_637812484142593165" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41002 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_637812484142593165" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAndLiabilitiesLesseeAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637812484142593165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityAbstract" xlink:label="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAndLiabilitiesLesseeAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637812484142593165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList" xlink:label="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList_637812484142593165" order="2" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637812484142593165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637812484142593165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilityAbstract_637812484142593165" xlink:to="us-gaap_OperatingLeaseLiability_637812484142593165" 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="41003 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637812484142603164" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637812484142603164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637812484142603164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_637812484142603164" xlink:to="us-gaap_OperatingLeaseLiability_637812484142613162" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="8" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SupplementalInformationRelatedToLeasesAbstract" xlink:label="fix_SupplementalInformationRelatedToLeasesAbstract_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="fix_SupplementalInformationRelatedToLeasesAbstract_637812484142613162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SupplementalInformationRelatedToLeasesAbstract_637812484142613162" xlink:to="us-gaap_OperatingLeasePayments_637812484142613162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_SupplementalInformationRelatedToLeasesAbstract_637812484142613162" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637812484142613162" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="9" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Income Taxes - Provision (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_635532923240944346" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532923240944346" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142613162" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142613162" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_637812484142613162" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142613162" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_637812484142613162" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484142613162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142613162" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637812484142613162" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532923240944346" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142623160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142623160" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637812484142623160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142623160" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_637812484142623160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_637812484142623160" xlink:to="us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit_637812484142623160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532923240944346" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484142623160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails" xlink:type="extended" xlink:title="41102 - Disclosure - Income Taxes - Reconciliation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_635532893192416966" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532893192416966" xlink:to="us-gaap_StatementTable_637812484142623160" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484142623160" xlink:to="srt_StatementScenarioAxis_637812484142623160" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_637812484142623160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis_637812484142623160" xlink:to="srt_ScenarioUnspecifiedDomain_637812484142623160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ScenarioUnspecifiedDomain_637812484142623160" xlink:to="srt_ScenarioForecastMember_637812484142633167" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637812484142623160" xlink:to="us-gaap_StatementLineItems_637812484142633167" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637812484142633167" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_637812484142633167" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637812484142633167" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_637812484142633167" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637812484142633167" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxContingencies" xlink:label="us-gaap_IncomeTaxReconciliationTaxContingencies_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationTaxContingencies_637812484142633167" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense_637812484142633167" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense_637812484142633167" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484142643164" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeduction" xlink:label="fix_IncomeTaxReconciliationSection179dDeduction_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="fix_IncomeTaxReconciliationSection179dDeduction_637812484142643164" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_637812484142643164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_637812484142643164" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_637812484142633167" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484142643164" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_InterestIncomeOnIncomeTaxRefundsNet" xlink:label="fix_InterestIncomeOnIncomeTaxRefundsNet_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="fix_InterestIncomeOnIncomeTaxRefundsNet_637812484142643164" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_637812484142643164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637812484142633167" xlink:to="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_637812484142643164" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="3" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails" xlink:type="extended" xlink:title="41103 - Disclosure - Income Taxes - Provision Changes, Examination (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationTable" xlink:label="us-gaap_IncomeTaxExaminationTable_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxExaminationTable_637812484142653154" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationTable_637812484142653154" xlink:to="us-gaap_TaxCreditCarryforwardAxis_637812484142653154" order="1" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis_637812484142653154" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain_637812484142653154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember" xlink:label="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain_637812484142653154" xlink:to="fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_637812484142653154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationTable_637812484142653154" xlink:to="us-gaap_TaxPeriodAxis_637812484142653154" order="2" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis_637812484142653154" xlink:to="us-gaap_TaxPeriodDomain_637812484142653154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2016Member" xlink:label="us-gaap_TaxYear2016Member_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637812484142653154" xlink:to="us-gaap_TaxYear2016Member_637812484142653154" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2017Member" xlink:label="us-gaap_TaxYear2017Member_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637812484142653154" xlink:to="us-gaap_TaxYear2017Member_637812484142653154" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxYear2018Member" xlink:label="us-gaap_TaxYear2018Member_637812484142653154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637812484142653154" xlink:to="us-gaap_TaxYear2018Member_637812484142653154" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TaxYears2016To2018Member" xlink:label="fix_TaxYears2016To2018Member_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637812484142653154" xlink:to="fix_TaxYears2016To2018Member_637812484142663165" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationTable_637812484142653154" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_637812484142663165" order="3" use="optional" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis_637812484142663165" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_637812484142663165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_637812484142663165" xlink:to="us-gaap_InternalRevenueServiceIRSMember_637812484142663165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationLineItems" xlink:label="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationTable_637812484142653154" xlink:to="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_637812484142663165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_637812484142663165" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies" xlink:label="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies_637812484142663165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority" xlink:label="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority_637812484142663165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority_637812484142663165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_637812484142673155" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExaminationLineItems_637812484142663165" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637812484142673155" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails" xlink:type="extended" xlink:title="41104 - Disclosure - Income Taxes - Deferred Tax Assets (Liabilities) (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_637812484142673155" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637812484142673155" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_637812484142673155" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxAssetsLeaseLiability" xlink:label="fix_DeferredTaxAssetsLeaseLiability_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="fix_DeferredTaxAssetsLeaseLiability_637812484142673155" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637812484142673155" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637812484142673155" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_637812484142683162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsOther_637812484142683162" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsGross_637812484142683162" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_637812484142683162" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_637812484142673155" xlink:to="us-gaap_DeferredTaxAssetsNet_637812484142683162" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142683162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" xlink:to="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142683162" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_637812484142693163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_637812484142693163" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_637812484142693163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_637812484142693163" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637812484142693163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_637812484142693163" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637812484142693163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_635532941860360990" xlink:to="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637812484142703157" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637812484142703157" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesLeasingArrangements" xlink:label="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredTaxLiabilitiesLeasingArrangements_637812484142703157" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DeferredTaxLiabilitiesLongTermContracts" xlink:label="fix_DeferredTaxLiabilitiesLongTermContracts_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="fix_DeferredTaxLiabilitiesLongTermContracts_637812484142703157" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637812484142703157" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_637812484142703157" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill_637812484142703157" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_637812484142713150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_637812484142713150" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_637812484142713150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_637812484142703157" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_637812484142713150" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails" xlink:type="extended" xlink:title="41105 - Disclosure - Income Taxes - Loss Carryforwards and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="us-gaap_OperatingLossCarryforwardsTable_637812484142723152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_OperatingLossCarryforwardsTable_637812484142723152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_637812484142723152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsTable_637812484142723152" xlink:to="us-gaap_IncomeTaxAuthorityAxis_637812484142723152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_637812484142723152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_637812484142723152" xlink:to="us-gaap_IncomeTaxAuthorityDomain_637812484142723152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember_637812484142723152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637812484142723152" xlink:to="us-gaap_DomesticCountryMember_637812484142723152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember_637812484142723152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637812484142723152" xlink:to="us-gaap_StateAndLocalJurisdictionMember_637812484142723152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsTable_637812484142723152" xlink:to="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_637812484142733159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_637812484142733159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_OperatingLossCarryforwards_637812484142733159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:label="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_637812484142733159" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_DeferredTaxAssetsNet_637812484142733159" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits_637812484142733159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefits_637812484142733159" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_637812484142743165" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_637812484142743165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_637812484142743165" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_637812484142743165" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefits_637812484142743165" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_637812484142743165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_6378124841427431651" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_6378124841427431651" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_637812484142743165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingLossCarryforwardsLineItems_637812484142733159" xlink:to="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_637812484142743165" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails" xlink:type="extended" xlink:title="41201 - Disclosure - Employee Benefit Plans (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent" xlink:label="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent_637812484142753154" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="us-gaap_DefinedContributionPlanCostRecognized_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_DefinedContributionPlanCostRecognized_637812484142753154" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedContributionPlanAmountPayable" xlink:label="fix_DefinedContributionPlanAmountPayable_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedContributionPlanAmountPayable_637812484142753154" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers" xlink:label="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers_637812484142753154" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MultiemployerPlanPensionInsignificantPlanContribution" xlink:label="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_MultiemployerPlanPensionInsignificantPlanContribution_637812484142753154" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:label="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_637812484142753154" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments" xlink:label="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments_637812484142753154" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService_637812484142753154" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_637812484142753154" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested_637812484142753154" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService" xlink:label="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService_637812484142763164" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested" xlink:label="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested_637812484142763164" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested" xlink:label="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested_637812484142763164" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent_637812484142763164" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" xlink:type="extended" xlink:title="41301 - Disclosure - Commitments and Contingencies - Other and Bonds (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable_637812484142763164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142763164" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142763164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_637812484142763164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142763164" xlink:to="us-gaap_LossContingencyNatureDomain_637812484142763164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceGuaranteeMember" xlink:label="us-gaap_PerformanceGuaranteeMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_637812484142763164" xlink:to="us-gaap_PerformanceGuaranteeMember_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SuretyBondMember" xlink:label="us-gaap_SuretyBondMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_637812484142763164" xlink:to="us-gaap_SuretyBondMember_637812484142773163" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142763164" xlink:to="srt_CounterpartyNameAxis_637812484142773163" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis_637812484142773163" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_CustomerMember" xlink:label="fix_CustomerMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain_637812484142773163" xlink:to="fix_CustomerMember_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusAxis" xlink:label="us-gaap_LitigationStatusAxis_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142763164" xlink:to="us-gaap_LitigationStatusAxis_637812484142773163" order="3" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LitigationStatusDomain" xlink:label="us-gaap_LitigationStatusDomain_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LitigationStatusAxis_637812484142773163" xlink:to="us-gaap_LitigationStatusDomain_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PendingLitigationMember" xlink:label="us-gaap_PendingLitigationMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LitigationStatusDomain_637812484142773163" xlink:to="us-gaap_PendingLitigationMember_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142763164" xlink:to="srt_RangeAxis_637812484142773163" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142773163" xlink:to="srt_RangeMember_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142773163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142773163" xlink:to="srt_MinimumMember_637812484142773163" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142773163" xlink:to="srt_MaximumMember_637812484142783150" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142763164" xlink:to="us-gaap_LossContingenciesLineItems_637812484142783150" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencyLetterOfIntentUnderDisputeNumber" xlink:label="fix_LossContingencyLetterOfIntentUnderDisputeNumber_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142783150" xlink:to="fix_LossContingencyLetterOfIntentUnderDisputeNumber_637812484142783150" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingencyDamagesSoughtValue" xlink:label="us-gaap_LossContingencyDamagesSoughtValue_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142783150" xlink:to="us-gaap_LossContingencyDamagesSoughtValue_637812484142783150" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencyDamagesStatedValue" xlink:label="fix_LossContingencyDamagesStatedValue_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142783150" xlink:to="fix_LossContingencyDamagesStatedValue_637812484142783150" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_LossContingencySuretyAbstract" xlink:label="fix_LossContingencySuretyAbstract_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142783150" xlink:to="fix_LossContingencySuretyAbstract_637812484142783150" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfBusinessWhichHasRequiredBonds" xlink:label="fix_PercentageOfBusinessWhichHasRequiredBonds_637812484142783150" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_LossContingencySuretyAbstract_637812484142783150" xlink:to="fix_PercentageOfBusinessWhichHasRequiredBonds_637812484142783150" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Commitments and Contingencies - Self-Insurance (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable_637812484142793159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142793159" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142793159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_637812484142793159" xlink:to="us-gaap_LossContingencyNatureDomain_637812484142793159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_WorkersCompensationMember" xlink:label="fix_WorkersCompensationMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_637812484142793159" xlink:to="fix_WorkersCompensationMember_637812484142793159" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember" xlink:label="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_637812484142793159" xlink:to="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_637812484142793159" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployersLiabilityMember" xlink:label="fix_EmployersLiabilityMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_637812484142793159" xlink:to="fix_EmployersLiabilityMember_637812484142793159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralLiabilityMember" xlink:label="us-gaap_GeneralLiabilityMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_637812484142793159" xlink:to="us-gaap_GeneralLiabilityMember_637812484142793159" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_AutoLiabilityMember" xlink:label="fix_AutoLiabilityMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember_637812484142793159" xlink:to="fix_AutoLiabilityMember_637812484142793159" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalMember" xlink:label="fix_EmployeeMedicalMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_637812484142793159" xlink:to="fix_EmployeeMedicalMember_637812484142793159" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanOneMember" xlink:label="fix_EmployeeMedicalPlanOneMember_637812484142793159" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployeeMedicalMember_637812484142793159" xlink:to="fix_EmployeeMedicalPlanOneMember_637812484142793159" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanTwoMember" xlink:label="fix_EmployeeMedicalPlanTwoMember_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployeeMedicalMember_637812484142793159" xlink:to="fix_EmployeeMedicalPlanTwoMember_637812484142803156" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeMedicalPlanThreeMember" xlink:label="fix_EmployeeMedicalPlanThreeMember_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_EmployeeMedicalMember_637812484142793159" xlink:to="fix_EmployeeMedicalPlanThreeMember_637812484142803156" order="3" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142793159" xlink:to="srt_RangeAxis_637812484142803156" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142803156" xlink:to="srt_RangeMember_637812484142803156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142803156" xlink:to="srt_MaximumMember_637812484142803156" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637812484142793159" xlink:to="us-gaap_LossContingenciesLineItems_637812484142803156" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerIncident" xlink:label="fix_SelfInsuranceDeductibleAmountPerIncident_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142803156" xlink:to="fix_SelfInsuranceDeductibleAmountPerIncident_637812484142803156" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount" xlink:label="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142803156" xlink:to="fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount_637812484142803156" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceAggregateLossInsuranceCoveredAmount" xlink:label="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142803156" xlink:to="fix_SelfInsuranceAggregateLossInsuranceCoveredAmount_637812484142803156" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceNumberOfMedicalPlans" xlink:label="fix_SelfInsuranceNumberOfMedicalPlans_637812484142803156" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142803156" xlink:to="fix_SelfInsuranceNumberOfMedicalPlans_637812484142803156" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy" xlink:label="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637812484142803156" xlink:to="fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy_637812484142813149" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" xlink:type="extended" xlink:title="41401 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142813149" order="1" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142813149" xlink:to="srt_RangeAxis_637812484142813149" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142813149" xlink:to="srt_RangeMember_637812484142813149" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142813149" xlink:to="srt_MaximumMember_637812484142813149" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142813149" xlink:to="us-gaap_PlanNameAxis_637812484142813149" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_637812484142813149" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_637812484142813149" xlink:to="us-gaap_PlanNameDomain_637812484142813149" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EquityIncentivePlan2012Member" xlink:label="fix_EquityIncentivePlan2012Member_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637812484142813149" xlink:to="fix_EquityIncentivePlan2012Member_637812484142823160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_OmnibusIncentivePlan2017Member" xlink:label="fix_OmnibusIncentivePlan2017Member_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637812484142813149" xlink:to="fix_OmnibusIncentivePlan2017Member_637812484142823160" order="2" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockRepurchaseProgram2007Member" xlink:label="fix_StockRepurchaseProgram2007Member_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637812484142813149" xlink:to="fix_StockRepurchaseProgram2007Member_637812484142823160" order="3" use="optional" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142813149" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142823160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142823160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_637812484142823160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142823160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637812484142823160" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfRepurchaseAgreementsAbstract" xlink:label="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142823160" xlink:to="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_637812484142823160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased" xlink:label="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_637812484142823160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" xlink:to="fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased_637812484142823160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" xlink:to="us-gaap_TreasuryStockSharesAcquired_637812484142833168" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="9" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_637812484142833168" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfRepurchaseAgreementsAbstract_637812484142823160" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_637812484142833168" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails" xlink:type="extended" xlink:title="41402 - Disclosure - Stockholders' Equity - Anti-Dilutive Stock Options (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_637812484142833168" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_637812484142833168" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637812484142833168" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_637812484142833168" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637812484142833168" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_637812484142833168" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637812484142833168" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember_637812484142843164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_637812484142833168" xlink:to="srt_RangeAxis_637812484142843164" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142843164" xlink:to="srt_RangeMember_637812484142843164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142843164" xlink:to="srt_MaximumMember_637812484142843164" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_637812484142833168" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_637812484142843164" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_637812484142843164" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637812484142843164" 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="41403 - 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteAbstract" xlink:label="us-gaap_StockholdersEquityNoteAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityNoteAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="us-gaap_CommonStockSharesOutstanding_637812484142843164" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EffectOfUsingWeightedAverageCommonSharesOutstanding" xlink:label="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_637812484142843164" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="fix_EffectOfUsingWeightedAverageCommonSharesOutstanding_637812484142843164" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637812484142853160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637812484142853160" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares" xlink:label="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares_637812484142853160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_637812484142843164" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637812484142853160" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Stock-Based Compensation - Stock Option Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142853160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142853160" xlink:to="us-gaap_AwardTypeAxis_637812484142853160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637812484142853160" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142853160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_637812484142853160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142853160" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember_637812484142853160" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142853160" xlink:to="srt_RangeAxis_637812484142863162" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142863162" xlink:to="srt_RangeMember_637812484142863162" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142863162" xlink:to="srt_MinimumMember_637812484142863162" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142853160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_637812484142863162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637812484142863162" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement_637812484142863162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_637812484142863162" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637812484142863162" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637812484142863162" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637812484142863162" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637812484142873152" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637812484142873152" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_637812484142873152" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637812484142873152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637812484142873152" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_6378124841428731521" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_6378124841428731521" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142863162" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637812484142873152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637812484142873152" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637812484142883148" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637812484142883148" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637812484142883148" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637812484142883148" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_637812484142883148" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637812484142883148" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142873152" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637812484142883148" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails" xlink:type="extended" xlink:title="41502 - Disclosure - Stock-Based Compensation - Stock Option Plan Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_637812484142893151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_637812484142893151" xlink:to="us-gaap_AwardTypeAxis_637812484142893151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637812484142893151" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142893151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142893151" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember_637812484142893151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_637812484142893151" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637812484142893151" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637812484142893151" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637812484142893151" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeOneMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeOneMember_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637812484142893151" xlink:to="fix_ShareBasedCompensationExercisePriceRangeOneMember_637812484142893151" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeTwoMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeTwoMember_637812484142893151" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637812484142893151" xlink:to="fix_ShareBasedCompensationExercisePriceRangeTwoMember_637812484142893151" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationExercisePriceRangeThreeMember" xlink:label="fix_ShareBasedCompensationExercisePriceRangeThreeMember_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637812484142893151" xlink:to="fix_ShareBasedCompensationExercisePriceRangeThreeMember_637812484142903165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_637812484142893151" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_637812484142903165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_637812484142903165" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_637812484142903165" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_637812484142903165" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_637812484142903165" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract" xlink:label="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_637812484142903165" xlink:to="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_637812484142903165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_637812484142903165" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_637812484142903165" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_637812484142903165" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_637812484142903165" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_637812484142903165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract_637812484142903165" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_637812484142903165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails" xlink:type="extended" xlink:title="41503 - Disclosure - Stock-Based Compensation - Fair Value Assumptions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142913152" xlink:to="us-gaap_AwardTypeAxis_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637812484142913152" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_EmployeeAndNonemployeeStockOptionMember" xlink:label="fix_EmployeeAndNonemployeeStockOptionMember_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142913152" xlink:to="fix_EmployeeAndNonemployeeStockOptionMember_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_RestrictedStockAndRestrictedStockUnitsRSUMember" xlink:label="fix_RestrictedStockAndRestrictedStockUnitsRSUMember_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142913152" xlink:to="fix_RestrictedStockAndRestrictedStockUnitsRSUMember_637812484142913152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637812484142913152" xlink:to="us-gaap_PerformanceSharesMember_637812484142913152" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142913152" xlink:to="srt_RangeAxis_637812484142913152" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637812484142913152" xlink:to="srt_RangeMember_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637812484142913152" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142913152" xlink:to="srt_MinimumMember_637812484142913152" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637812484142913152" xlink:to="srt_MaximumMember_637812484142923163" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637812484142913152" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142923163" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142923163" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637812484142923163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142923163" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637812484142923163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_637812484142923163" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637812484142923163" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward" xlink:label="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" xlink:to="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_637812484142923163" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637812484142923163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_637812484142923163" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637812484142923163" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_6378124841429231631" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward_637812484142923163" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_6378124841429231631" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_637812484142933165" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637812484142933165" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637812484142933165" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_6378124841429331651" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_6378124841429331651" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637812484142933165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637812484142933165" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637812484142943160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637812484142943160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637812484142943160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637812484142943160" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637812484142943160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_637812484142933165" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637812484142943160" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="5" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637812484142923163" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637812484142943160" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637812484142943160" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6378124841429431601" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6378124841429431601" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_637812484142953158" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637812484142953158" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_TypesOfPerformanceStockUnits" xlink:label="fix_TypesOfPerformanceStockUnits_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_TypesOfPerformanceStockUnits_637812484142953158" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer" xlink:label="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer_637812484142953158" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PercentageOfUnitsMeasuredOnPredeterminedEPS" xlink:label="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_PercentageOfUnitsMeasuredOnPredeterminedEPS_637812484142953158" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PerformanceMultiplierForDollarDenominatedAwardGranted" xlink:label="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_637812484142953158" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_PerformanceMultiplierForDollarDenominatedAwardGranted_637812484142953158" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance" xlink:label="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_637812484142963153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance_637812484142963153" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue" xlink:label="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_637812484142963153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue_637812484142963153" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion" xlink:label="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_637812484142963153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion_637812484142963153" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_637812484142963153" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract_637812484142943160" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_637812484142963153" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="5" />
  </presentationLink>
  <presentationLink xlink:role="http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Segment Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract_637550341390984508" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract_637550341390984508" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637812484142973165" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637812484142973165" xlink:to="srt_ConsolidationItemsAxis_637812484142973165" order="1" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsAxis_637812484142973165" xlink:to="srt_ConsolidationItemsDomain_637812484142973165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsDomain_637812484142973165" xlink:to="us-gaap_OperatingSegmentsMember_637812484142973165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidationItemsDomain_637812484142973165" xlink:to="us-gaap_IntersegmentEliminationMember_637812484142973165" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637812484142973165" xlink:to="us-gaap_StatementBusinessSegmentsAxis_637812484142973165" order="2" use="optional" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_637812484142973165" xlink:to="us-gaap_SegmentDomain_637812484142973165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_MechanicalServicesMember" xlink:label="fix_MechanicalServicesMember_637812484142973165" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484142973165" xlink:to="fix_MechanicalServicesMember_637812484142973165" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="fix-20211231.xsd#fix_ElectricalServicesMember" xlink:label="fix_ElectricalServicesMember_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_637812484142973165" xlink:to="fix_ElectricalServicesMember_637812484142983163" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637812484142973165" xlink:to="us-gaap_SegmentReportingInformationLineItems_637812484142983163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637812484142983163" xlink:to="us-gaap_NumberOfReportableSegments_637812484142983163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637812484142983163" xlink:to="us-gaap_Revenues_637812484142983163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637812484142983163" xlink:to="us-gaap_GrossProfit_637812484142983163" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637812484142983163" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637812484142983163" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets_637812484142983163" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637812484142983163" xlink:to="us-gaap_Assets_637812484142983163" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="4" />
  </presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759809592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Feb. 18, 2022</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2021<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">1-13011<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, $.01 par value<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,790<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,956,839<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2021<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">Deloitte & Touche LLP<span></span>
</td>
<td class="text">Ernst & Young LLP<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">34<span></span>
</td>
<td class="text">42<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Houston, Texas<span></span>
</td>
<td class="text">Houston, Texas<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>16
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759939672">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 58,776<span></span>
</td>
<td class="nump">$ 54,896<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BilledContractReceivables', window );">Billed accounts receivable, less allowance for credit losses of $8,808 and $9,087, respectively</a></td>
<td class="nump">773,716<span></span>
</td>
<td class="nump">619,544<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnbilledContractsReceivable', window );">Unbilled accounts receivable, less allowance for credit losses of $715 and $784, respectively</a></td>
<td class="nump">61,881<span></span>
</td>
<td class="nump">45,596<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NontradeReceivablesCurrent', window );">Other receivables, less allowance for credit losses of $503 and $759, respectively</a></td>
<td class="nump">57,491<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="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">21,853<span></span>
</td>
<td class="nump">13,472<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">23,704<span></span>
</td>
<td class="nump">15,510<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings, less allowance for credit losses of $84 and $79, respectively</a></td>
<td class="nump">29,900<span></span>
</td>
<td class="nump">18,622<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">1,027,321<span></span>
</td>
<td class="nump">811,852<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET</a></td>
<td class="nump">128,554<span></span>
</td>
<td class="nump">117,206<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">LEASE RIGHT-OF-USE ASSET</a></td>
<td class="nump">124,756<span></span>
</td>
<td class="nump">94,727<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">GOODWILL</a></td>
<td class="nump">592,114<span></span>
</td>
<td class="nump">464,392<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">IDENTIFIABLE INTANGIBLE ASSETS, NET</a></td>
<td class="nump">304,781<span></span>
</td>
<td class="nump">231,807<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">DEFERRED TAX ASSETS</a></td>
<td class="nump">22,905<span></span>
</td>
<td class="nump">29,401<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">OTHER NONCURRENT ASSETS</a></td>
<td class="nump">8,683<span></span>
</td>
<td class="nump">7,970<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">2,209,114<span></span>
</td>
<td class="nump">1,757,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="top.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="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current maturities of long-term debt</a></td>
<td class="nump">2,788<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">254,788<span></span>
</td>
<td class="nump">204,145<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation and benefits</a></td>
<td class="nump">129,971<span></span>
</td>
<td class="nump">121,864<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="nump">307,380<span></span>
</td>
<td class="nump">226,237<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SelfInsuranceReserveCurrent', window );">Accrued self-insurance</a></td>
<td class="nump">22,227<span></span>
</td>
<td class="nump">49,166<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrent', window );">Other current liabilities</a></td>
<td class="nump">119,400<span></span>
</td>
<td class="nump">91,492<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">836,554<span></span>
</td>
<td class="nump">692,904<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">LONG-TERM DEBT, NET</a></td>
<td class="nump">385,242<span></span>
</td>
<td class="nump">235,733<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">LEASE LIABILITIES</a></td>
<td class="nump">107,701<span></span>
</td>
<td class="nump">80,576<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED TAX LIABILITIES</a></td>
<td class="nump">1,745<span></span>
</td>
<td class="nump">1,339<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">OTHER LONG-TERM LIABILITIES</a></td>
<td class="nump">72,206<span></span>
</td>
<td class="nump">50,374<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">1,403,448<span></span>
</td>
<td class="nump">1,060,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="top.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="top.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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValue', window );">Treasury stock, at cost, 5,032,311 and 4,935,186 shares, respectively</a></td>
<td class="num">(150,580)<span></span>
</td>
<td class="num">(129,243)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">327,061<span></span>
</td>
<td class="nump">322,451<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">628,774<span></span>
</td>
<td class="nump">502,810<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders' equity</a></td>
<td class="nump">805,666<span></span>
</td>
<td class="nump">696,429<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 2,209,114<span></span>
</td>
<td class="nump">$ 1,757,355<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6801-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123371682&amp;loc=d3e55302-109406<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130533-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.8)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6911-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6405834&amp;loc=d3e23315-112656<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(c)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123371682&amp;loc=d3e55302-109406<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>17
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758854376">
<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>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Billed accounts receivable, allowance for credit losses (in dollars)</a></td>
<td class="nump">$ 8,808<span></span>
</td>
<td class="nump">$ 9,087<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="top.Show.showAR( this, 'defref_fix_UnbilledAccountsReceivableAllowanceForCreditLoss', window );">Unbilled accounts receivable, allowance for credit losses (in dollars)</a></td>
<td class="nump">715<span></span>
</td>
<td class="nump">784<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent', window );">Other receivables, allowance for credit losses (in dollars)</a></td>
<td class="nump">503<span></span>
</td>
<td class="nump">759<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="top.Show.showAR( this, 'defref_fix_CostsInExcessOfBillingsAllowanceForCreditLosses', window );">Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)</a></td>
<td class="nump">$ 84<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="top.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="top.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="top.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="top.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="top.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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">Treasury stock, shares</a></td>
<td class="nump">5,032,311<span></span>
</td>
<td class="nump">4,935,186<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_CostsInExcessOfBillingsAllowanceForCreditLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit losses on receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CostsInExcessOfBillingsAllowanceForCreditLosses</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_UnbilledAccountsReceivableAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_TreasuryStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758088888">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">REVENUE</a></td>
<td class="nump">$ 3,073,636<span></span>
</td>
<td class="nump">$ 2,856,659<span></span>
</td>
<td class="nump">$ 2,615,277<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">COST OF SERVICES</a></td>
<td class="nump">2,510,429<span></span>
</td>
<td class="nump">2,309,676<span></span>
</td>
<td class="nump">2,113,334<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">563,207<span></span>
</td>
<td class="nump">546,983<span></span>
</td>
<td class="nump">501,943<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">SELLING, GENERAL AND ADMINISTRATIVE EXPENSES</a></td>
<td class="nump">376,309<span></span>
</td>
<td class="nump">357,777<span></span>
</td>
<td class="nump">340,005<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets', window );">GAIN ON SALE OF ASSETS</a></td>
<td class="num">(1,540)<span></span>
</td>
<td class="num">(1,445)<span></span>
</td>
<td class="num">(1,701)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">188,438<span></span>
</td>
<td class="nump">190,651<span></span>
</td>
<td class="nump">163,639<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">24<span></span>
</td>
<td class="nump">103<span></span>
</td>
<td class="nump">224<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="num">(6,196)<span></span>
</td>
<td class="num">(8,385)<span></span>
</td>
<td class="num">(9,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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Changes in the fair value of contingent earn-out obligations</a></td>
<td class="nump">7,820<span></span>
</td>
<td class="nump">9,119<span></span>
</td>
<td class="num">(2,991)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other</a></td>
<td class="nump">188<span></span>
</td>
<td class="nump">52<span></span>
</td>
<td class="nump">187<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="nump">1,836<span></span>
</td>
<td class="nump">889<span></span>
</td>
<td class="num">(11,897)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">INCOME BEFORE INCOME TAXES</a></td>
<td class="nump">190,274<span></span>
</td>
<td class="nump">191,540<span></span>
</td>
<td class="nump">151,742<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">PROVISION FOR INCOME TAXES</a></td>
<td class="nump">46,926<span></span>
</td>
<td class="nump">41,401<span></span>
</td>
<td class="nump">37,418<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">NET INCOME</a></td>
<td class="nump">$ 143,348<span></span>
</td>
<td class="nump">$ 150,139<span></span>
</td>
<td class="nump">$ 114,324<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="nump">$ 3.95<span></span>
</td>
<td class="nump">$ 4.11<span></span>
</td>
<td class="nump">$ 3.10<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted</a></td>
<td class="nump">$ 3.93<span></span>
</td>
<td class="nump">$ 4.09<span></span>
</td>
<td class="nump">$ 3.08<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">36,285<span></span>
</td>
<td class="nump">36,542<span></span>
</td>
<td class="nump">36,854<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">36,450<span></span>
</td>
<td class="nump">36,738<span></span>
</td>
<td class="nump">37,131<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123351718&amp;loc=d3e2443-110228<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109226691&amp;loc=d3e2941-110230<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123384075&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>19
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755460024">
<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>Cumulative Effect, Period of Adoption, Adjustment [Member] </div>
<div>Retained Earnings (Deficit)</div>
</th>
<th class="th"><div>Cumulative Effect, Period of Adoption, Adjustment [Member]</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 (Deficit)</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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (87,747)<span></span>
</td>
<td class="nump">$ 316,479<span></span>
</td>
<td class="nump">$ 268,904<span></span>
</td>
<td class="nump">$ 498,047<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">BALANCE (in shares) at Dec. 31, 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,229,653)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">114,324<span></span>
</td>
<td class="nump">114,324<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,532<span></span>
</td>
<td class="num">(182)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">114,125<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,303<span></span>
</td>
<td class="num">(297)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,006<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="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock (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="nump">107,606<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,498)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,498)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock (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="nump">28,586<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,168<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,168<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(14,543)<span></span>
</td>
<td class="num">(14,543)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></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">$ (19,550)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(19,550)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">428,940<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (103,960)<span></span>
</td>
<td class="nump">320,168<span></span>
</td>
<td class="nump">368,685<span></span>
</td>
<td class="nump">585,304<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">BALANCE (in shares) at Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,465,448)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">150,139<span></span>
</td>
<td class="nump">150,139<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,811<span></span>
</td>
<td class="num">(667)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,144<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">113,731<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,102<span></span>
</td>
<td class="num">(1,247)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,855<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock (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="nump">128,889<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,076)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,076)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock (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="nump">27,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,197<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,197<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(15,499)<span></span>
</td>
<td class="num">(15,499)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></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">$ (30,120)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(30,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="top.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="nump">684,634<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2020</a></td>
<td class="num">$ (515)<span></span>
</td>
<td class="num">$ (515)<span></span>
</td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (129,243)<span></span>
</td>
<td class="nump">322,451<span></span>
</td>
<td class="nump">502,810<span></span>
</td>
<td class="nump">$ 696,429<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">BALANCE (in shares) at Dec. 31, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,935,186)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,935,186<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">143,348<span></span>
</td>
<td class="nump">$ 143,348<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,399<span></span>
</td>
<td class="nump">235<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,634<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">195,724<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,681<span></span>
</td>
<td class="num">(473)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,208<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="top.Show.showAR( this, 'defref_fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross', window );">Issuance of restricted stock &amp; performance stock (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="nump">101,360<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,363)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,363)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding payment on vested restricted stock (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="nump">31,413<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,848<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(17,384)<span></span>
</td>
<td class="num">(17,384)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValueAcquiredCostMethod', window );">Share repurchase</a></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">$ (27,054)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(27,054)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">362,796<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">BALANCE at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 411<span></span>
</td>
<td class="num">$ (150,580)<span></span>
</td>
<td class="nump">$ 327,061<span></span>
</td>
<td class="nump">$ 628,774<span></span>
</td>
<td class="nump">$ 805,666<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">BALANCE (in shares) at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">BALANCE (in shares) at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,032,311)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,032,311<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of shares issued during the period, including shares forfeited, as a result of Restricted and Performance Stock Awards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross</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_fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate value of stock related to Restricted and Performance Stock Awards issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross</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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=122142933&amp;loc=d3e11149-113907<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=122142933&amp;loc=d3e11178-113907<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123468992&amp;loc=d3e4534-113899<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3000-108585<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123454820&amp;loc=SL4569616-111683<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 29: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4J<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591551-111686<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4K<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591552-111686<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_TreasuryStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockSharesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>20
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301760110200">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareDeclared', window );">Dividends (per share)</a></td>
<td class="nump">$ 0.48<span></span>
</td>
<td class="nump">$ 0.425<span></span>
</td>
<td class="nump">$ 0.395<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>21
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301756754376">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net income</a></td>
<td class="nump">$ 143,348<span></span>
</td>
<td class="nump">$ 150,139<span></span>
</td>
<td class="nump">$ 114,324<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of identifiable intangible assets</a></td>
<td class="nump">40,505<span></span>
</td>
<td class="nump">32,698<span></span>
</td>
<td class="nump">27,082<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation expense</a></td>
<td class="nump">28,439<span></span>
</td>
<td class="nump">27,931<span></span>
</td>
<td class="nump">24,490<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="top.Show.showAR( this, 'defref_fix_ChangeInRightOfUseAssets', window );">Change in right-of-use assets</a></td>
<td class="nump">17,592<span></span>
</td>
<td class="nump">16,692<span></span>
</td>
<td class="nump">16,887<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (benefit)</a></td>
<td class="num">(1,452)<span></span>
</td>
<td class="nump">5,253<span></span>
</td>
<td class="nump">2,978<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax provision (benefit)</a></td>
<td class="nump">6,902<span></span>
</td>
<td class="num">(7,953)<span></span>
</td>
<td class="num">(4,251)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCosts', window );">Amortization of debt financing costs</a></td>
<td class="nump">538<span></span>
</td>
<td class="nump">544<span></span>
</td>
<td class="nump">387<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Gain on sale of assets</a></td>
<td class="num">(1,540)<span></span>
</td>
<td class="num">(1,445)<span></span>
</td>
<td class="num">(1,701)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Changes in the fair value of contingent earn-out obligations</a></td>
<td class="num">(7,820)<span></span>
</td>
<td class="num">(9,119)<span></span>
</td>
<td class="nump">2,991<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">10,593<span></span>
</td>
<td class="nump">6,934<span></span>
</td>
<td class="nump">5,878<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Receivables, net</a></td>
<td class="num">(58,046)<span></span>
</td>
<td class="nump">38,486<span></span>
</td>
<td class="num">(49,508)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(5,651)<span></span>
</td>
<td class="num">(1,457)<span></span>
</td>
<td class="nump">2,366<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="num">(8,623)<span></span>
</td>
<td class="num">(4,855)<span></span>
</td>
<td class="num">(15,519)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(17,271)<span></span>
</td>
<td class="nump">2,706<span></span>
</td>
<td class="num">(4,312)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other noncurrent assets</a></td>
<td class="num">(1,174)<span></span>
</td>
<td class="num">(1,373)<span></span>
</td>
<td class="num">(735)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities', window );">Accounts payable and accrued liabilities</a></td>
<td class="nump">4,004<span></span>
</td>
<td class="nump">11,087<span></span>
</td>
<td class="nump">31,046<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="nump">44,620<span></span>
</td>
<td class="nump">19,434<span></span>
</td>
<td class="nump">4,376<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Other long-term liabilities</a></td>
<td class="num">(14,813)<span></span>
</td>
<td class="nump">808<span></span>
</td>
<td class="num">(14,751)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">180,151<span></span>
</td>
<td class="nump">286,510<span></span>
</td>
<td class="nump">142,028<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property and equipment</a></td>
<td class="num">(22,330)<span></span>
</td>
<td class="num">(24,131)<span></span>
</td>
<td class="num">(31,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="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sales of property and equipment</a></td>
<td class="nump">3,101<span></span>
</td>
<td class="nump">2,270<span></span>
</td>
<td class="nump">2,159<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested', window );">Proceeds from sale of business</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,611<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash paid for acquisitions, net of cash acquired</a></td>
<td class="num">(227,493)<span></span>
</td>
<td class="num">(185,941)<span></span>
</td>
<td class="num">(196,470)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(246,722)<span></span>
</td>
<td class="num">(207,802)<span></span>
</td>
<td class="num">(224,450)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromLongTermLinesOfCredit', window );">Proceeds from revolving credit facility</a></td>
<td class="nump">275,000<span></span>
</td>
<td class="nump">268,000<span></span>
</td>
<td class="nump">356,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="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermLinesOfCredit', window );">Payments on revolving credit facility</a></td>
<td class="num">(125,000)<span></span>
</td>
<td class="num">(226,000)<span></span>
</td>
<td class="num">(228,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="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfSeniorDebt', window );">Payments on term loan</a></td>
<td class="num">(15,000)<span></span>
</td>
<td class="num">(15,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="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfOtherDebt', window );">Payments on other debt</a></td>
<td class="num">(15,696)<span></span>
</td>
<td class="num">(46,534)<span></span>
</td>
<td class="num">(3,784)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeasePrincipalPayments', window );">Payments on finance lease liabilities</a></td>
<td class="num">(3,805)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfFinancingCosts', window );">Debt financing costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,405)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payments of dividends to stockholders</a></td>
<td class="num">(17,384)<span></span>
</td>
<td class="num">(15,499)<span></span>
</td>
<td class="num">(14,543)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Share repurchase</a></td>
<td class="num">(27,054)<span></span>
</td>
<td class="num">(30,120)<span></span>
</td>
<td class="num">(19,550)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Shares received in lieu of tax withholding</a></td>
<td class="num">(2,363)<span></span>
</td>
<td class="num">(1,076)<span></span>
</td>
<td class="num">(1,498)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercise of options</a></td>
<td class="nump">5,634<span></span>
</td>
<td class="nump">2,144<span></span>
</td>
<td class="nump">2,350<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="top.Show.showAR( this, 'defref_fix_DeferredAcquisitionPayments', window );">Deferred acquisition payments</a></td>
<td class="num">(400)<span></span>
</td>
<td class="num">(650)<span></span>
</td>
<td class="num">(637)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payments for contingent consideration arrangements</a></td>
<td class="num">(3,481)<span></span>
</td>
<td class="num">(9,865)<span></span>
</td>
<td class="num">(1,343)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by (used in) financing activities</a></td>
<td class="nump">70,451<span></span>
</td>
<td class="num">(74,600)<span></span>
</td>
<td class="nump">87,590<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">NET INCREASE IN CASH AND CASH EQUIVALENTS</a></td>
<td class="nump">3,880<span></span>
</td>
<td class="nump">4,108<span></span>
</td>
<td class="nump">5,168<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">CASH AND CASH EQUIVALENTS, beginning of period</a></td>
<td class="nump">54,896<span></span>
</td>
<td class="nump">50,788<span></span>
</td>
<td class="nump">45,620<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">CASH AND CASH EQUIVALENTS, end of period</a></td>
<td class="nump">$ 58,776<span></span>
</td>
<td class="nump">$ 54,896<span></span>
</td>
<td class="nump">$ 50,788<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of change in right-of-use assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred acquisition payments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495355-112611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3044-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=SL98516268-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FinanceLeasePrincipalPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow for principal payment on finance lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeasePrincipalPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123371682&amp;loc=d3e55415-109406<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PaymentsOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for loan and debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ProceedsFromDivestitureOfBusinessesNetOfCashDivested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents the cash inflow during the period from the sale of a component of the entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromLongTermLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3000-108585<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123454820&amp;loc=SL4569616-111683<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 29: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4J<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591551-111686<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4K<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591552-111686<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RepaymentsOfSeniorDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for a long-term debt where the holder has highest claim on the entity's asset in case of bankruptcy or liquidation during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfSeniorDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>22
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757822888">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 10pt 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 0pt 12pt 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. Approximately 46.3% of our consolidated 2021 revenue is attributable to installation of systems in newly constructed facilities, with the remaining 53.7% attributable to maintenance, repair and replacement services. The terms &#8220;Comfort Systems,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company,&#8221; refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI http://asc.fasb.org/topic&amp;trid=2134479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>23
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763883528">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Principles of Consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">These financial statements are prepared in accordance with accounting principles generally accepted in the United States of America. The accompanying consolidated financial statements include our accounts and those of our subsidiaries in which we have a controlling interest. All intercompany accounts and transactions have been eliminated. Certain amounts in prior periods may have been reclassified to conform to the current period presentation. The effects of the reclassifications were not material to the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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, deferred tax assets, 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Cash Flow Information</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash paid (in thousands) for:</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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.87%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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:10.55%;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.53%;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:60.87%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 6,052</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 7,684</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 8,817</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes, net of refunds</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;"><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:8.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;"> 52,204</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;"><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:8.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;"> 51,286</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;"><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:10.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;"> 45,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recently Adopted Accounting Pronouncements</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 December 2019, the FASB issued ASU No. 2019-12, &#8220;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes.&#8221; This standard simplifies the accounting for income taxes by eliminating certain exceptions to the guidance in Topic 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The standard also simplifies aspects of the accounting for franchise taxes and enacted changes in tax laws or rates and </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">clarifies the accounting for transactions that result in a step-up in the tax basis of goodwill. ASU No. 2019-12 is effective for fiscal years beginning after December 15, 2020 and interim periods within that year. We adopted ASU No. 2019-12 on January 1, 2021, and the impact was not material to our overall financial statements.</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;">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="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;">In March 2020, the FASB issued ASU No. 2020-04, &#8220;Reference Rate Reform (Topic 848).&#8221; The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (&#8220;LIBOR&#8221;) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 9) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We are currently evaluating the impact of the transition from LIBOR to alternative reference rates but do not expect a significant impact to our consolidated financial statements.</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 October 2021, the FASB issued ASU 2021-08, &#8220;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.&#8221; This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.</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 12pt 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="white-space:pre-wrap;">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.</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="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 the cost to cost measure of progress 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 measure of progress, 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="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;"><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 costs and estimated earnings in excess of billings. 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 </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">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 Other 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 non-residential 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 (e.g., 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;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;">Starting in March 2020, we experienced negative impacts to our business due to the disruption caused by Coronavirus Disease 2019 (&#8220;COVID-19&#8221;). In March 2020, the World Health Organization categorized COVID-19 as a pandemic, and the President of the United States declared the COVID-19 outbreak a national emergency. The Company considered the impact of COVID-19 on the assumptions and estimates used to determine the results reported and asset valuations as of December 31, 2021 and December 31, 2020.</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 2020, we increased our loss rates and increased our specific reserves primarily due to the economic disruption caused by COVID-19, which was reflected in our bad debt expense in the prior year. This increase was primarily, but not exclusively, due to concern over collectability of receivables from customers more directly impacted by COVID-19. In 2021, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized.</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;">Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.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:0.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:5.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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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:0.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><td style="vertical-align:bottom;white-space:nowrap;width:5.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:0.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:6.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><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;white-space:nowrap;width:0.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:6.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:0.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:1.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;white-space:nowrap;width:9.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: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:0.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:4.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:0.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:6.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:31.01%;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">Year Ended December 31, </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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:31.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 colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">2021</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;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="2" style="vertical-align:bottom;width:6.41%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:6.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;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.05%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></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;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:5.6%;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;">Other</b></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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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,028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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,709</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 3,192</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 3,400</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;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:0.96%;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:4.64%;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;"> 315</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;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:0.96%;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:6.41%;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,907</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Impact of new accounting standard</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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:2.31%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 331</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 695</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Bad debt expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (970)</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (496)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> 14</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,452)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (10)</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Deductions for uncollectible receivables written off, net of recoveries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (742)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (244)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (986)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,431)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (735)</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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.02%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (2,166)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Credit allowance of acquired receivables on the acquisition date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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;"> 369</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"> &#8212;</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Reclass to other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> &#8212;</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;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:9.28%;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;"> &#8212;</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;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:0.96%;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:4.64%;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;"> (315)</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.41%;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;"> (315)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> 10,110</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 4,637</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,028</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;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:0.96%;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:4.64%;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;"> 44</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;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:0.96%;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:6.41%;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;"> 10,709</p></td></tr></table><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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Inventories</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Inventories consist of parts and supplies that we purchase and hold for use in the ordinary course of business and are stated at the lower of cost or net realizable value using the average-cost method.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Property and Equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment are stated at cost, and depreciation is computed using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are capitalized and amortized over the lesser of the expected life of the lease or the estimated useful life of the asset.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Expenditures for repairs and maintenance are charged to expense when incurred. Expenditures for major renewals and betterments, which extend the useful lives of existing equipment, are capitalized and depreciated over the remaining useful life of the equipment. Upon retirement or disposition of property and equipment, the cost and related </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">accumulated depreciation are removed from the accounts and any resulting gain or loss is recognized in &#8220;Gain on sale of assets&#8221; in the Statement of Operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recoverability of Goodwill and Identifiable Intangible Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We perform our annual impairment testing as of October 1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies (&#8220;public company approach&#8221;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#8220;EBITDA&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Long-Lived Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Long-lived assets are comprised principally of identifiable intangible assets, property and equipment, lease right-of-use assets and deferred tax assets. We periodically evaluate whether events and circumstances have occurred that indicate that the remaining balances of these assets may not be recoverable. We use estimates of future undiscounted cash flows, as well as other economic and business factors, to assess the recoverability of these assets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.</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;">Contingent Consideration</i>&#8212;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Contingent Assets and Liabilities</i>&#8212;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. Acquisition date fair value estimates are </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance Liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 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. Our self-insurance arrangements are further discussed in Note&#160;13 &#8220;Commitments and Contingencies.&#8221;</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Warranty Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 11pt 0pt;">We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#8217; warranties on equipment. We generally warrant labor for thirty days after servicing existing MEP systems. A reserve for warranty costs is estimated and recorded based upon the historical level of warranty claims and management&#8217;s estimate of future costs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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;">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 states with varying 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 0pt 12pt 0pt;">Income taxes are provided for under the liability method, which takes into account differences between financial statement treatment and tax treatment of certain transactions. Deferred taxes are based on the difference between the financial reporting and tax basis of assets and liabilities. The deferred tax provision represents the change during the reporting period in the deferred tax assets and deferred tax liabilities, net of the effect of acquisitions and dispositions. Deferred tax assets include tax loss and credit carryforwards and are reduced by a valuation allowance if, based on available evidence, it is more-likely-than-not some portion or all of the deferred tax assets will not be realized.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant judgment is required in assessing the timing and amounts of deductible and taxable items. We record unrecognized tax benefits as liabilities when, despite our belief that our tax return positions are supportable, we believe that some portion of our uncertain tax positions may be disallowed. When facts and circumstances change, we adjust these liabilities through our provision for income taxes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">To the extent interest and penalties may be assessed by taxing authorities on any underpayment of income tax, such amounts are accrued and classified as a component in the provision for income taxes in our Consolidated Statements of Operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Concentrations of Credit Risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We provide services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for credit losses. We have a diverse customer base, with our top customer representing 9% of consolidated 2021 revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable, interest rate swaps and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Insurance Recovery</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recorded a $4.8 million gain in the fourth quarter of 2019 due to insurance proceeds we received in the fourth quarter. Approximately $1.6 million of the gain was recorded as a reduction in SG&amp;A, and the <span style="-sec-ix-hidden:Hidden_ya8cO3-ldUOAIAIbX8MKow;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">remainder</span></span><span style="white-space:pre-wrap;"> was recorded as a reduction in Cost of Services expense.&#160;These proceeds related to recoverable costs that were primarily incurred prior to the fourth quarter in 2019.</span><span style="white-space:pre-wrap;"> </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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>24
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763872504">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract 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="top.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 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off&#8209;<span style="white-space:pre-wrap;">site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For fixed price agreements, we use the percentage of completion method of accounting under which contract revenue recognizable at any time during the life of a contract is determined by multiplying expected total contract revenue by the percentage of contract costs incurred at any time to total estimated contract costs. More specifically, as part of the negotiation and bidding process to obtain installation contracts, we estimate our contract costs, which include all direct materials, labor and subcontract costs and indirect costs related to contract performance, such as indirect labor, supplies, tools, repairs and depreciation costs. These contract costs are included in our results of operations under the caption &#8220;Cost of Services.&#8221; Then, as we perform under those contracts, we measure costs incurred, compare them to total estimated costs to complete the contract and recognize a corresponding proportion of contract revenue. Labor costs are considered to be incurred as the work is performed. Subcontractor labor is recognized as the work is performed. Non&#8209;labor project costs consist of purchased equipment, prefabricated materials and other materials. Purchased equipment on our projects is substantially produced to job specifications, normally installed shortly after receipt and is a value-added element to our work. Prefabricated materials, such as ductwork and piping, are generally performed at our shops and recognized as contract costs when fabricated for the unique specifications of the job. Other materials costs are generally recorded when delivered to the work site. This measurement and comparison process requires updates to the estimate of total costs to complete the contract, and these updates may include subjective assessments and judgments.</p><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;">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;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Selling, marketing and estimation costs incurred in relation to selling contracts are expensed as incurred.&#160;On rare occasions, we may incur significant expenses related to selling a contract that we only incurred because we sold that </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">contract.&#160;If this occurs, we capitalize that cost and amortize it on a percentage of completion basis over the life of the contract. We do not currently have any capitalized selling, marketing, or estimation costs in our Consolidated Balance Sheet and did not incur any impairment loss in the current year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160; </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 on a percentage of completion basis over the life of the contract. 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;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;">Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date percentage of completion of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. As a result, contract revenue recognized in our Consolidated Statement of Operations can and usually does differ from amounts that can be billed or invoiced to the customer at any point during the contract. Amounts by which cumulative contract revenue recognized on a contract as of a given date exceed cumulative billings and unbilled receivables to the customer under the contract are reflected as a current asset in our Consolidated Balance Sheet under the caption &#8220;Costs and estimated earnings in excess of billings.&#8221; Amounts by which cumulative billings to the customer under a contract as of a given date exceed cumulative contract revenue recognized on the contract are reflected as a current liability in our Consolidated Balance Sheet under the caption &#8220;Billings in excess of costs and estimated earnings.&#8221; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">Contracts in progress are as follows (in thousands):</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:71.72%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.05%;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, </b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.43%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.45%;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;">2020</b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;">Costs incurred on contracts in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;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;"> 3,723,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;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;"> 3,103,580</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Estimated earnings, net of losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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;"> 589,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 548,435</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Billings to date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (4,527,801)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (3,813,171)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less&#8212;Unbilled accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (61,881)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (45,596)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Unbilled accounts receivable credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (784)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (277,396)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (207,536)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;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:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Costs and estimated earnings in excess of billings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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;"> 18,622</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Plus&#8212;Costs and estimated earnings in excess of billings credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;background:#cceeff;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;"> 84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;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;"> 79</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Billings in excess of costs and estimated earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (307,380)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (226,237)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (277,396)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (207,536)</p></td><td style="vertical-align:bottom;width:1.06%;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></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 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;">Accounts receivable include amounts billed to customers under retention or retainage provisions in construction contracts. Such provisions are standard in our industry and usually allow for a small portion of progress billings or the contract price to be withheld by the customer until after we have completed work on the project, typically for a period of six months. Based on our experience with similar contracts in recent years, the majority of our billings for such retention balances at each Balance Sheet date are finalized and collected within the subsequent year. Retention balances at December 31, 2021 and 2020 were $139.5 million and $124.1 million, respectively, and are included in accounts receivable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">Accounts payable at December 31, 2021 and 2020 included $24.0&#160;million and $22.2&#160;million of retainage under terms of contracts with subcontractors, respectively. The majority of the retention balances at each Balance Sheet date are finalized and paid within the subsequent year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;">The percentage of completion method of accounting is also affected by changes in job performance, job conditions, and final contract settlements. These factors may result in revisions to estimated costs and, therefore, revenue. Such revisions are frequently based on further estimates and subjective assessments. The effects of these revisions are recognized in the period in which revisions are determined. When such revisions lead to a conclusion that a loss will be recognized on a contract, the full amount of the estimated ultimate loss is recognized in the period such conclusion is reached, regardless of the percentage of completion of the contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;">Revisions to project costs and conditions can give rise to change orders under which there is an agreement between the customer and us that the customer pays an additional or reduced contract price. Revisions can also result in claims we might make against the customer to recover project variances that have not been satisfactorily addressed through change orders with the customer. The amount of revenue associated with unapproved change orders and claims was immaterial for the year ended December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 13.19pt 0pt;">Variations from estimated project costs could have a significant impact on our operating results, depending on project size, and the recoverability of the variation from change orders collected from customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">We typically invoice our customers with payment terms of net due in 30 days.&#160;It is common in the construction industry for a contract to specify more lenient payment terms allowing the customer <span style="-sec-ix-hidden:Hidden_gm00fDXIjUiWVD1l4A7FZg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">45</span></span> to 60 days to make their payment.&#160;It is also common for the contract in the construction industry to specify that a general contractor is not required to submit payments to a subcontractor until it has received those funds from the owner or funding source.&#160;In most instances, we receive payment of our invoices between <span style="-sec-ix-hidden:Hidden_riBRZn21y0eQAjcY6Boz0Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">30</span></span> to 90 days of the date of the invoice. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer. A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">To determine the proper revenue recognition method for contracts, we evaluate whether two or more contracts should be combined and accounted for as one performance obligation and whether the combined or single contract should be accounted for as more than one performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate the combined or single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. For most of our contracts, the customer contracts with us to provide a significant service of integrating a complex set of tasks and components into a single project or capability (even if that single project results in the delivery of multiple units). Hence, the entire contract is accounted for as one performance obligation. Less commonly, however, we may promise to provide distinct goods or services within a contract, in which case we separate the contract into more than one performance obligation. If a contract is separated into more than one performance obligation, we allocate the total transaction price to each performance obligation in an amount based on the estimated relative standalone selling prices of the promised goods or services underlying each performance obligation. We infrequently sell standard products with observable standalone sales. In such cases, the observable standalone sales are used to determine the standalone selling price. More frequently, we sell a customized, customer-specific solution, and, in these cases, we typically use the expected cost plus a margin approach to estimate the standalone selling price of each performance obligation.&#160; </p><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;">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.&#160;&#160;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 to deliver 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:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">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 the cost to cost measure of progress 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 measure of progress, 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 and subcontractors&#8217; costs, other direct costs and an allocation of indirect costs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In our mechanical segment, 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.&#160;Similar to 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. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </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.&#160;Variable amounts can either increase or decrease the transaction price.&#160;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.&#160;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.&#160;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="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;"><span style="background:#ffffff;">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 determinatio</span>n 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:9pt;margin:0pt;">&#160; </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).&#160;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 catchup basis. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </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 (e.g., the number and type of milestone events), technical requirements (e.g., 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 (e.g., 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:9pt;margin:0pt;">&#160; </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 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 catchup basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on a performance obligation's percentage of completion. 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:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Company typically does not incur any returns, refunds, or similar obligations after the completion of the performance obligation since any deficiencies are corrected during the course of the work or are included as a modification to revenue.&#160;The Company does offer an industry standard warranty on our work, which is most commonly for a one-year period.&#160;The vendors providing the equipment and materials are responsible for any failures in their product unless installed incorrectly.&#160;We include an estimated amount to cover estimated warranty expense in our Cost of </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Services and record a liability in our Consolidated Balance Sheet to cover our current estimated outstanding warranty obligations. </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; &#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the years ended December 31, 2021 and December 31, 2020, net revenue recognized from our performance obligations satisfied in previous periods was not material.&#160;</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;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;"><span style="font-style:italic;font-weight:bold;">Disaggregation of Revenue</span> </p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">&#160; </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our consolidated 2021 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 16 &#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;margin:0pt;"><span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.8695679%;padding-left:0pt;padding-right:0pt;width:101.73%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:0.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: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:1.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: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:8.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: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:1.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: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:5.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: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: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: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:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,542,623</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 82.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,430,632</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 85.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,272,031</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 86.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 531,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 17.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 426,027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 14.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 343,246</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 13.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,356,688</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 44.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,112,075</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 38.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 886,668</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 33.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 390,251</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 12.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 487,922</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 17.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 412,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 15.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 308,799</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 319,426</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 348,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 417,901</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 371,105</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 358,155</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 174,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 163,717</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 162,507</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 6.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 213,386</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 239,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 248,083</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 9.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 112,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 3.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 86,799</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 3.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 104,693</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 99,019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 76,074</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 2.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 94,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 3.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,421,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 46.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,333,739</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 46.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,201,122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 45.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 963,461</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 31.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 910,807</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 31.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 793,159</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 30.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 278,582</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 9.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 241,402</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 231,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 409,809</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 13.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 370,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 13.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 389,768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 14.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr></table><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;">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 payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.</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. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in other long-term liabilities in our Consolidated Balance Sheets.</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;"/>The following table presents the changes in contract assets and contract liabilities (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;background:#ffff00;">&#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:81.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.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.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:9.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:2.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.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.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;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: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:9.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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;width:49.36%;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.27%;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;">Year Ended December 31, </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 style="vertical-align:bottom;white-space:nowrap;width:1.25%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:23.27%;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;">Year Ended December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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.27%;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;">2021</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;text-align:center;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.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Contract</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;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;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Liabilities</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;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;width:10.49%;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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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;width:11.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;">Liabilities</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 226,237</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;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,736</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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;"> 166,918</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change due to acquisitions / disposals</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:9.19%;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,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,523</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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,509</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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,885</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change related to credit allowance</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:9.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;background:#cceeff;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.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.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:9.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (79)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other changes in the period</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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,620</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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;"> 6,456</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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;"> 19,434</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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;"> 307,380</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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:1.66%;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.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;"> 226,237</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;background:#ffff00;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the years ended December 31, 2021 and 2020, we recognized revenue of $207.6 million and $165.8 million related to our contract liabilities at January 1, 2021 and January 1, 2020, 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;">We did not have any impairment losses recognized on our receivables or contract assets in 2021 and 2020.</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;">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 December 31, 2021, the aggregate amount of the transaction price allocated to remaining performance obligations was $2.31 billion. The Company expects to recognize revenue on approximately 80-85% of the remaining performance obligations over the next <span style="white-space:pre-wrap;">12 months</span><span style="white-space:pre-wrap;">, with the remaining recognized thereafter. Our service maintenance agreements are generally </span><span style="white-space:pre-wrap;">one-year</span><span style="white-space:pre-wrap;"> renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of </span><span style="-sec-ix-hidden:Hidden_kZ9mqrjuIkuTp1OYmXuhBQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">one</span></span><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130550-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130558-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>25
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757828904">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 0pt;"><b style="font-weight:bold;">4. Fair Value Measurements</b></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;">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;"><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;">In April 2020, we entered into interest rate swap agreements to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $80.0 million as of December 31, 2021, and the termination date is September 30, 2022. </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 use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps&#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 Income Statement in &#8220;Interest Expense.&#8221; For the years ended December 31, 2021 and December 31, 2020, we recognized a net loss of $0.5 million and $0.3 million, respectively, related to our interest rate swaps. 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;text-indent:36pt;margin:0pt;"><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="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 0pt 12pt 0pt;">We classify and disclose assets and liabilities carried at fair value in one of the following three categories:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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:12pt;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><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 December&#160;31, 2021 and 2020 (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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.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><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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> 58,776</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 58,776</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 6,643</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 6,643</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 34,114</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 34,114</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.78%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> 54,896</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 54,896</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 5,420</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 5,420</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 25,979</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 25,979</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap liability</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 42</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 42</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 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. The fair value for our interest rate swaps is based upon inputs corroborated by observable market data with similar tenors, which are considered Level 2 inputs. The Company&#8217;s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company&#8217;s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We have life insurance policies covering 85 employees with a combined face value of $62.3&#160;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 was $6.6&#160;million as of December&#160;31, 2021 and $5.4&#160;million as of December&#160;31, 2020. These assets are included in Other Noncurrent Assets in our Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 (e.g.,&#160;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 December 31, 2021, cash flows were discounted using a weighted average cost of capital ranging from 10.0% - 16.5%.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level&#160;3) (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:80.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:75.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:0.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.28%;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.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:2.33%;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.28%;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.81%;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.59%;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;white-space:nowrap;width:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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:23.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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.67%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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: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:9.38%;background:#cceeff;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,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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';">&#160;&#160;&#160;&#160;</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:8.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;"> 28,497</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;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:0.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.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:9.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.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;"> 16,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;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:0.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.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:9.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(3,994)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(10,114)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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:75.65%;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:0.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.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:9.38%;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;"> (7,820)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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;"> (9,119)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.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:9.38%;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;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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;"> 25,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 0pt 0pt;">We measure certain assets at fair value on a nonrecurring basis. These assets are recognized at fair value when they are concluded to be other-than-temporarily impaired. No goodwill or other intangible asset impairments were recorded during the years ended December 31, 2021, 2020 and 2019. We did not recognize any other impairments on </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">those assets required to be measured at fair value on a nonrecurring basis. See Note 6 &#8220;Goodwill and Identifiable Intangible Assets, Net&#8221; for further discussion.  </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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>26
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757904776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 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="font-style:italic;font-weight:bold;">Amteck Holdco LLC Acquisition</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 August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively &#8220;Amteck&#8221;). Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment. Revenue attributable to Amteck was $83.5 million for the five months from the acquisition 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;">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;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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.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: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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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:78.39%;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.06%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,355</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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,409</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;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:78.39%;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.06%;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:18.54%;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;"> 12,900</p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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;"> 137,664</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,554</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,248</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 current assets</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;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,422</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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,886</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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:3.06%;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:18.54%;background:#cceeff;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,076</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,700</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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;">  Operating lease right-of-use asset</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,997</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,489)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,199)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 maturities of long-term debt</span></p></td><td style="vertical-align:middle;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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,860)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,115)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,889)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (785)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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;"> (7,882)</p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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;"> 137,664</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;">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 could not be individually identified and separately recognized. All of the goodwill recognized as a result of the Amteck acquisition is tax deductible.</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;">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 </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">ranging from 14.0% - 18.5</span><span style="white-space:pre-wrap;">%.  Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class.</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 acquired intangible assets include the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.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:1.98%;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;width:21.23%;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.98%;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;width:12.86%;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;width:2.13%;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;width:2.13%;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;width:12%;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:45.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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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;">Valuation Method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;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.86%;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;">Estimated Useful Life</p></td><td style="vertical-align:bottom;width:2.13%;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:2.13%;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:12%;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;">Estimated Fair Value</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.5 years</p></td><td style="vertical-align:bottom;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><td style="vertical-align:bottom;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><td style="vertical-align:bottom;white-space:nowrap;width: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;"> 7,800</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">23 years</p></td><td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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,600</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;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;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><td style="vertical-align:bottom;width:2.13%;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:12%;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;"> 37,300</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-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.86%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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%;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;"> 57,700</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;">The contingent earn-out obligation is associated with the achievement of four earnings milestones over a 53-month period, and the range of each average present value estimated milestone payment is $0.1 million to $11.4 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. Cash flows were discounted using discount rates ranging from 14.8% - 15.2%, which we believe is appropriate and representative of a market participant assumption. Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period. Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized in earnings.</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;">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 December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, &#8220;MEP Holdings&#8221;) for a total preliminary purchase price of $57.3 million, which included $45.2 million funded on the closing date, $7.6 million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $21.1 million and a temporary staffing company based in Indiana with a total preliminary purchase price of $4.6 million, which are both reported in our mechanical services 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 December 1, 2021, we acquired Ivey Mechanical Company, LLC (&#8220;Ivey&#8221;) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $78.8 million, which included $64.1 million of cash paid on the closing date, $8.0 million in notes payable to former owners, a $0.4 million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services 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;">In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $18.1 million, which is reported in our mechanical services 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;">In the fourth quarter of 2020, we acquired all outstanding equity interests of Tennessee Electric Company, Inc. dba TEC Industrial Maintenance and Construction (&#8220;TEC&#8221;) for a total purchase price of $88.9 million, which included $73.0 million in cash, $7.0 million in notes payable to former owners, a $7.6 million contingent earn-out obligation and a $1.3 million working capital adjustment. As a result of the acquisition, TEC is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services 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 April 1, 2020, we consummated a merger through which TAS Energy Inc. (&#8220;TAS&#8221;) became a wholly owned subsidiary of the Company. The total purchase price was $169.5 million, of which $126.2 million was allocated to goodwill and identifiable intangible assets. The total purchase price included $105.9 million in cash, $40.5 million in working capital adjustment, $14.0 million in notes payable to former owners and a $9.1 million contingent earn-out obligation. TAS is headquartered in Houston, Texas, and is a leading engineering, design and construction provider of modular construction systems serving the technology, power and industrial sectors, and reports as a separate operating location in our mechanical services 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;">We completed the acquisition of an electrical contractor in North Carolina in the first quarter of 2020 with a total purchase price of $41.6 million. This acquisition is reported in our electrical services 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 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">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.&#160;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI http://asc.fasb.org/topic&amp;trid=2303972<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>27
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757918424">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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 0pt 12pt 0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.0710907%;padding-left:0pt;padding-right:0pt;width:100.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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: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:nowrap;width:1.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:13.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.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:nowrap;width:1.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:11.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><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:1.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:8.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:57.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:1.69%;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.9%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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:13.47%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.57%;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:57.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:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2019</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> 234,660</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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;"> 97,787</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 332,447</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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;"> 72,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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;"> 59,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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;"> 131,945</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2020</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 307,448</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.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;"> 156,944</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:8.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 464,392</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 52,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 74,951</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.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:8.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 127,722</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Impact of segment reorganization</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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:13.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 3pt 0pt 0pt;"> 1,101</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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;"> (1,101)</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2021</p></td><td style="vertical-align:bottom;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> 361,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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;"> 592,114</p></td></tr></table><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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">The aggregate goodwill balance as of December 31, 2021 and 2020 includes $116.6 million of accumulated impairment charges, all of which relate to the mechanical services segment. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We perform our annual impairment testing on October&#160;1, or more frequently, if events and circumstances indicate impairment may have occurred. As discussed in Note&#160;2, &#8220;Summary of Significant Accounting Policies and Estimates,&#8221; we have the option to first perform a qualitative assessment to determine whether it is more likely than not that the fair value of the reporting unit is less than the carrying value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">During our annual impairment testing on October 1, 2021, we performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally, we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by 32%. As a result of the reporting unit&#8217;s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of December 31, 2021, the Texas electrical operation had a goodwill balance of $96.8 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For the years ended December 31, 2021, 2020 and 2019, no impairment of our goodwill was recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">There are significant inherent uncertainties and management judgment involved in estimating the fair value of each reporting unit. While we believe we have made reasonable estimates and assumptions to estimate the fair value of our reporting units, it is possible that a material change could occur. If actual results are not consistent with our current estimates and assumptions, or the current economic outlook worsens, goodwill impairment charges may be recorded 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 12pt 36pt;"><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 0pt 12pt 0pt;">Identifiable intangible assets consist of the following (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:82%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:24.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:2.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:20.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Remaining Useful Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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;">in Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;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:20.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">7.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 330,572</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (130,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 255,692</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (103,919)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;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,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (20,091)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (12,600)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:20.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">19.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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;"> 114,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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;"> (22,697)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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;"> 91,495</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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;"> (18,661)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;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:2.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.25%;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.54%;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;"> 477,667</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (172,886)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.54%;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;"> 366,987</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (135,180)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The amounts attributable to customer relationships and tradenames are amortized to &#8220;Selling, General and Administrative Expenses&#8221; based upon the estimated consumption of their economic benefits, or a straight-line method over periods from <span style="-sec-ix-hidden:Hidden_CcfO-HB-okeWU5MqGAiZHQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to twenty-five years if the pattern of economic benefit cannot otherwise be reliably estimated. The amounts attributable to backlog are being amortized to &#8220;Cost of Services&#8221; on a proportionate method over the remaining backlog period. Amortization expense for the years ended December&#160;31, 2021, 2020 and 2019 was $40.5&#160;million, $32.7&#160;million and $27.1 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">As of December&#160;31, 2021, future amortization expense of identifiable intangible assets was as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.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.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.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: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.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></tr><tr><td style="vertical-align:bottom;width:82.36%;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;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;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:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p 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%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="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%;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,343</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;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,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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,312</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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;"> 131,933</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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;"> 304,781</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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;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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>28
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757922360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property and Equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">7. Property and Equipment</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.32%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;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.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:2.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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.51%;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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.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 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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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&#160;Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="5" style="vertical-align:bottom;white-space:nowrap;width:27.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:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.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;">in&#160;Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:12.02%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Land</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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,167</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Transportation equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 132,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 113,802</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Machinery and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,386</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer and telephone equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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,065</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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,215</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Buildings and leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 74,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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,683</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,081</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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,861</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Construction in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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;"> 1,668</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> 1,294</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:10.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:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 293,379</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 264,408</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less&#8212;Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.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.74%;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;"> (164,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> (147,202)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.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.74%;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;"> 128,554</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> 117,206</p></td><td style="vertical-align:bottom;white-space:nowrap;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></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">Depreciation expense for the years ended December&#160;31, 2021, 2020 and 2019 was $28.4&#160;million, $27.9&#160;million and $24.5&#160;million, respectively.</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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI http://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757989896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Detail of Other Current Liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Detail of Other Current Liabilities</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="top.Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Detail of Other Current Liabilities</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;">8. Detail of Other Current Liabilities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Other current liabilities consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.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:2.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:66.84%;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.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><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:29.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;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.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued warranty costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,969</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,914</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,050</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16,586</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued job losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,962</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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,151</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued sales and use tax</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,861</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,731</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,734</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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,559</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Liabilities due to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,280</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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;"> 37,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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;"> 45,271</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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;"> 119,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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;"> 91,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -URI http://asc.fasb.org/topic&amp;trid=2122208<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757885752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt Obligations<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 0pt;"><b style="font-weight:bold;">9. Debt Obligations</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Debt obligations consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.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;width:1.4%;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.4%;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.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:2.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.4%;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.03%;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.22%;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:70.26%;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.4%;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:27.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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.4%;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="2" style="vertical-align:bottom;white-space:nowrap;width:12.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;">2021 </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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.44%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 220,000</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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;"> 70,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;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,000</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:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 135,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,954</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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;"> 31,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease liabilities (See Note 10)</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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;"> 266</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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total principal amount</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 388,220</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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;"> 236,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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;"> (190)</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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> (267)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt, net of unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 388,030</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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:11.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;"> 235,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;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.4%;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.02%;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;"> (2,788)</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:1.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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, net</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;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.02%;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;"> 385,242</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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;"> 235,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">At December&#160;31, 2021, future principal payments of debt are as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.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: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:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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><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></tr><tr><td style="vertical-align:bottom;width:84.53%;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;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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.78%;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: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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</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;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p 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.78%;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,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</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:1.67%;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.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;"> 27,981</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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</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:1.67%;margin:0pt;padding:0pt;"><p style="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.78%;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,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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:84.53%;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: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:1.67%;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.78%;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;"> 322,099</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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.67%;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.78%;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;"> 388,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">Interest expense included the following primary elements (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.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:2.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.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:7.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.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.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: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:2.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.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:7.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: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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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="8" style="vertical-align:bottom;white-space:nowrap;width:30.21%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on notes to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 1,052</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;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,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 1,531</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on borrowings and unused commitment fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 3,371</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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,319</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 6,887</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on interest rate swaps</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 499</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 679</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 830</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 512</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of debt financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 538</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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;"> 544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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;"> 387</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;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.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.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:7.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;"> 6,196</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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;"> 8,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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;"> 9,317</p></td><td style="vertical-align:bottom;white-space:nowrap;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></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-size:1pt;font-style:italic;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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility and Term Loan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have a $600.0 million senior credit facility (the &#8220;Facility&#8221;) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of December 31, 2021, the Facility capacity was $570.0 million, as the term loan was paid down by $30.0 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 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 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. In 2019, we incurred approximately $1.4 million in financing and professional costs in connection with an amendment to the Facility, which are being amortized over the remaining term of the Facility. Of this amount, $0.4 million is attributable to the term loan and is being amortized using the effective interest method. For the term loan, we are required to make quarterly payments increasing over time from 1.25% to 3.75% of the original aggregate principal amount of the term loan, with the balance due in January 2025. As of December&#160;31, 2021, we had $120.0 million principal outstanding on the term loan, $220.0 million of outstanding borrowings on the revolving credit facility, $53.5&#160;million in letters of credit outstanding and $176.5&#160;million of credit available.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Collateral</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A common practice in our industry is the posting of payment and performance bonds with customers. These bonds are offered by financial institutions known as sureties and provide assurance to the customer that in the event we encounter significant financial or operational difficulties, the surety will arrange for the completion of our contractual obligations and for the payment of our vendors on the projects subject to the bonds. In cooperation with our lenders, we granted our sureties a first lien on assets such as receivables, costs and estimated earnings in excess of billings, and equipment specifically identifiable to projects for which bonds are outstanding, as collateral for potential obligations under bonds. As of December&#160;31, 2021, the book value of these assets was approximately $98.9&#160;million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Covenants and Restrictions</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. Credit Facility Adjusted EBITDA is defined under the Facility for financial covenant purposes as net earnings for the four quarters ending as of any given quarterly covenant compliance measurement date, plus the corresponding amounts for (a)&#160;interest expense; (b)&#160;provision for income taxes; (c)&#160;depreciation and amortization; (d)&#160;stock compensation; (e) other non-cash charges; and (f)&#160;pre-acquisition results of acquired companies. The Facility&#8217;s principal financial covenants include:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Total Leverage Ratio&#8212;</i>The Facility requires that the ratio of our Consolidated Total Indebtedness to our Credit Facility Adjusted EBITDA not exceed 3.00 to 1.00 as of the end of each fiscal quarter. The total leverage ratio as of December&#160;31, 2021 was 1.2.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Fixed Charge Coverage Ratio&#8212;</i>The Facility requires that the ratio of (a) Credit Facility Adjusted EBITDA, less non-financed capital expenditures, provision for income taxes, dividends and amounts used to repurchase stock when the Company&#8217;s Total Leverage Ratio exceeds 2.00 to 1.00 to (b) the sum of interest expense and scheduled principal payments of indebtedness be at least 1.50 to 1.00. Credit Facility Adjusted EBITDA, capital expenditures, provision for income taxes, dividends, stock repurchase payments, interest expense, and scheduled principal payments are defined under the Facility for purposes of this covenant, to be amounts for the four quarters ending as of any given quarterly covenant compliance measurement date. The fixed charge coverage ratio as of December&#160;31, 2021 was 42.0.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Other Restrictions&#8212;</i>The Facility permits acquisitions of up to $5.0 million per transaction, provided that the aggregate purchase price of such an acquisition and of acquisitions in the same fiscal year does not exceed $10.0 million. However, these limitations only apply when the Company&#8217;s Total Leverage Ratio is greater than 2.50 to 1.00.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">While the Facility&#8217;s financial covenants do not specifically govern capacity under the Facility, if our debt level under the Facility at a quarter-end covenant compliance measurement date were to cause us to violate the Facility&#8217;s leverage ratio covenant, our borrowing capacity under the Facility and the favorable terms that we currently have could be negatively impacted by the lenders.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">We were in compliance with all of our financial covenants as of December&#160;31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Interest Rates and Fees</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. Additional margins are then added to these two rates. Under the Base Rate Loan Option, the interest rate is determined based on the highest of the Federal Funds Rate plus 0.5%, the prime lending rate offered by Wells Fargo Bank, N.A. or the one-month Eurodollar Rate plus 1.00%. Under the Eurodollar Rate Loan Option, the interest rate is determined based on the one- to six-month Eurodollar Rate. The Eurodollar Rate corresponds very closely to rates described in various general business media sources as the London Interbank Offered Rate or &#8220;LIBOR.&#8221; Additional margins are then added to these rates. The additional margins are determined based on the ratio of our Consolidated Total Indebtedness as of a given quarter end to our &#8220;Credit Facility Adjusted EBITDA,&#8221; which shall mean Consolidated EBITDA as such term is defined in the credit agreement, for the <span style="white-space:pre-wrap;">twelve months</span><span style="white-space:pre-wrap;"> ending as of that quarter end.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The interest rates under the Facility are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. For illustrative purposes, the following are the respective market rates as of December&#160;31, 2021 relating to interest options under the Facility:</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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:88.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.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:7.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Base Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;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.58%;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:1.63%;background:#cceeff;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:88.65%;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;">Federal Funds Rate plus 0.50%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;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.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;">0.57%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Wells Fargo Bank, N.A. Prime Rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">3.25%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">One-month LIBOR plus 1.00%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">1.10%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Eurodollar Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.58%;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.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">One-month LIBOR</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">0.10%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Six-month LIBOR</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">0.34%</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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 just the same as actual borrowings. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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. Letter of credit fees and commitment fees are based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.</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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:10.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.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:7.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:2.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:7.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:2.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:10.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.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></tr><tr><td style="vertical-align:bottom;width:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;margin:0pt;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&#160;Total&#160;Indebtedness&#160;to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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;">Credit&#160;Facility&#160;Adjusted&#160;EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.03%;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;1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.98%;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;1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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: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;">2.50&#160;or&#160;greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.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:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.76%;background:#cceeff;margin:0pt;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:50.9%;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:10.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;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;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.76%;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:7.98%;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:2.76%;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:10.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;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Eurodollar Rate 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:10.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;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;background:#cceeff;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.76%;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.98%;background:#cceeff;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:2.76%;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.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.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</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:10.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;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p 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.98%;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.76%;margin:0pt;padding:0pt;"><p 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.98%;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:2.76%;margin:0pt;padding:0pt;"><p 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.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;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commitment fees on any portion of the Revolving Loan capacity not in use for borrowings or letters of credit at any given time</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:10.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;"> 0.20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;background:#cceeff;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.76%;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:7.98%;background:#cceeff;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.30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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;"> 0.35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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:12pt 0pt 12pt 0pt;">The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.4% as of December&#160;31, 2021. The weighted average interest rate applicable to the term loan was approximately 1.4% as of December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">As part of the consideration used to acquire ten companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $48.0 million as of December 31, 2021. In conjunction with the acquisition of MEP Holdings in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $7.6 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in April 2024 and April 2025. In conjunction with the acquisition of Ivey in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $8.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in January 2025. In conjunction with the acquisition of Amteck in the third quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $10.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in October 2024 and October 2025. In conjunction with the acquisition of a Texas electrical contractor in the second quarter of 2019, we issued a promissory note to former owners with an outstanding balance of $2.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 4.0%. The remaining principal is due in April 2023. In conjunction with the six remaining acquisitions, we issued notes to former owners with an outstanding balance of $20.4 million as of December 31, 2021 that bear interest, payable quarterly, at stated interest rates ranging from 2.3% - 3.5%. The principal amounts are due between April 2022 and April 2025.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -URI http://asc.fasb.org/topic&amp;trid=2208564<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>31
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763891928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 0pt;"><b style="font-weight:bold;">10. Leases</b></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 are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. As of December 31, 2021, the lease liabilities associated with these <span style="-sec-ix-hidden:Hidden_FgMkO2rf00CIiBtTbwWcSQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">finance leases</span></span> were $0.3 million. Leases with an initial term of 12 months or less are not recorded in the 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 some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $11.9 million in 2021, $7.7 million in 2020 and $8.4 million in 2019. 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 December 31, 2021 and 2020 was 4.0% and 4.2%, 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 years ended December 31, 2021, 2020 and 2019 was $34.2 million, $28.2 million and $24.8 million, respectively.</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 lease terms generally range from <span style="-sec-ix-hidden:Hidden_Jy-T07AOW0GkRD4aV4OpIQ;"><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. The weighted average remaining lease term for our operating leases was 8.7 years at December 31, 2021 and 7.5 years at December 31, 2020.</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;">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 years ended December 31, 2021, 2020 and 2019 was approximately $4.9 million, $4.2 million and $3.7 million, respectively.</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;">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.</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;">Finance lease right-of-use assets are included in &#8220;Property and equipment, net,&#8221; and current and long-term finance lease liabilities are included within &#8220;Current maturities of long-term debt&#8221; and &#8220;Long-term debt, net,&#8221; respectively, in the Consolidated Balance Sheet. 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:80%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.21%;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: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:14.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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: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:14.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></tr><tr><td style="vertical-align:middle;width:61.21%;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:17.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;">December 31, 2021</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: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.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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.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;"> 124,756</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,727</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;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:61.21%;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_ZoYV9Ak1x0qoBQBxKtcfzA;"><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.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:14.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;"> 19,050</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16,586</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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;"> 107,701</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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;"> 80,576</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.03%;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.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;"> 126,751</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.32%;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;"> 97,162</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;">The maturities of operating lease liabilities as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.66%;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;width:1.66%;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;width:10.4%;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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.66%;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.4%;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.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;margin:0pt;padding:0pt;"><p 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.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;"> 23,729</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 21,142</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 18,738</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 17,642</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 14,631</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 55,161</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 151,043</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> (24,292)</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 126,751</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;">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:66.86%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:2.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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;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:15.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;">2020</b></p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;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:13.53%;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,443</p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;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,346</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>32
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757951704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text"><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 0pt 12pt 0pt;"><b style="font-weight:bold;">11. Income Taxes </b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Provision for Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our provision for income taxes relating to continuing operations consists of the following (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:96.45%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.5%;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.43%;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.51%;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:7.45%;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.42%;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.51%;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:7.45%;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.43%;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.53%;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:7.45%;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.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></tr><tr><td style="vertical-align:bottom;width:64.5%;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.43%;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="8" style="vertical-align:bottom;white-space:nowrap;width:31.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;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.43%;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.97%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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.97%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;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.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current tax provision&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p 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.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;"> 31,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p 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.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;"> 36,556</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p 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.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;"> 33,281</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> 8,741</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> 12,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> 8,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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;"> 40,024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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;"> 49,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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;"> 41,669</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax provision (benefit)&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p style="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;"> 6,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p style="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;"> (5,483)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p style="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;"> (3,750)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> 705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> (2,470)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> (501)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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;"> 6,902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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;"> (7,953)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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,251)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;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;"> 46,926</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;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;"> 41,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;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;"> 37,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The provision for income taxes for the years ended December 31, 2021, 2020 and 2019 resulted in effective tax rates on continuing operations of 24.7%, 21.6% and 24.7%, respectively. The reasons for the differences between these effective tax rates and the federal statutory rates are as follows (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:95.68%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.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:1.91%;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.11%;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:7.1%;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.91%;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.14%;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:7.9%;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.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:1.14%;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:7.47%;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.15%;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:65.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;white-space:nowrap;width:1.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 colspan="8" style="vertical-align:bottom;white-space:nowrap;width:30.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.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;white-space:nowrap;width:1.91%;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.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:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.04%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;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.61%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Federal statutory rate of&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;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.11%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.14%;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:7.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes at the federal statutory rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 39,958</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.9%;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,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p 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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,866</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Increases (decreases) resulting from&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net state income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 7,340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,406</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,644</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (39)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (254)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (279)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;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,338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Nondeductible expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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,381</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;background:#cceeff;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,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;background:#cceeff;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,180</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">R&amp;D tax credit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (26,133)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,569)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">179D deduction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,207)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,062)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,126)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation deductions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,210)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (426)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (714)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;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.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;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:7.1%;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;"> 63</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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:7.9%;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;"> (380)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;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;"> 78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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%;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.1%;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;"> 46,926</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;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;"> 41,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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;"> 37,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></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;">In the third quarter of 2019, we filed an amended federal return for 2015 to claim the credit for increasing research activities (the &#8220;R&amp;D tax credit&#8221;) and recorded a $4.6 million tax benefit that was fully offset by an addition to unrecognized tax benefits. We previously filed an amended federal return for 2014 to claim the R&amp;D tax credit during 2018 and recorded a $2.7 million tax benefit that was also fully offset by an addition to unrecognized tax benefits. These $7.3 million of tax benefits were fully offset by additions to unrecognized tax benefits due to the uncertainty of the outcome from examinations opened by the Internal Revenue Service (the &#8220;IRS&#8221;). As a result, the R&amp;D tax credit claimed had no impact on our effective tax rates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For the year ended December 31, 2019, our provision for income taxes was decreased by $2.2 million due to benefits from the filing, and expected filing, of amended returns to claim the energy efficient commercial buildings deduction (the &#8220;179D deduction&#8221;) allocated to us.</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;"/>During the third quarter of 2020, the IRS completed their examination of our amended federal returns for 2014 and 2015 and issued a Revenue Agent Report (&#8220;RAR&#8221;) allowing the $8.9 million of refund claims in full. Subsequently, the Joint Committee on Taxation (the &#8220;JCT&#8221;) reviewed and approved the refund claims. As a result, our provision for income taxes was decreased by $8.3 million due to a reduction in unrecognized tax benefits.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#0070c0;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;"/>In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the R&amp;D tax credit requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of our IRS examination. The R&amp;D tax credit had no material impact on our effective tax rate for the year ended December 31, 2020.</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;"/>Following an IRS survey of our previously filed refund claims for the 2016, 2017 and 2018 tax years, the JCT approved such refunds in late January 2022. Since approval was received after the Balance Sheet date, our effective tax rate was not affected for the year ended December 31, 2021. However, our provision for income taxes in the first quarter of 2022 will be decreased by $28.8 million due to a reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.</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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Deferred Tax Assets (Liabilities)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant components of the deferred tax assets and deferred tax liabilities as reflected on the balance sheets are as follows (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:67.39%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.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><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.52%;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.22%;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.44%;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.52%;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.22%;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.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></tr><tr><td style="vertical-align:bottom;width:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;margin:0pt;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.61%;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:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;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.44%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accounts receivable and allowance for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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,878</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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,392</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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,791</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accrued liabilities and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,255</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,944</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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,768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net operating loss carryforwards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,379</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,127</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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,851</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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;"> 758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 80,260</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (475)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (514)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> 83,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> 79,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,534)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (13,877)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease right-of-use asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (27,905)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (22,715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Long-term contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (964)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (609)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (242)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (17,321)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,615)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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;"> (1,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (2,626)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> (62,822)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> (51,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 21,160</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 28,062</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The deferred tax assets and liabilities reflected above are included in the Consolidated Balance Sheets as follows (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:42.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:54.84%;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:3.84%;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.4%;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:15.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:3.84%;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.4%;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:15.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:0.96%;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:54.84%;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.84%;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:40.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;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.84%;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:18.25%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:18.25%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:54.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> 1,745</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> 1,339</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">As of December 31, 2021, we had $7.2 million of deferred tax assets related to $34.2 million of federal net operating loss (&#8220;NOL&#8221;) carryforwards as a result of the TAS acquisition. If not used, such carryforwards will begin to expire in 2031. We also had $3.2 million of deferred tax assets related to $61.7 million of state NOL carryforwards, including carryforwards acquired from TAS. The state NOL carryforwards will expire in varying amounts between the years 2022 and 2041. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;">Pursuant to Section 382 of the Code, utilization of our federal NOL carryforwards is subject to annual limitations due to the ownership change in TAS. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain stockholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. While we expect to fully utilize the federal NOL carryforwards acquired from TAS before they begin to expire in 2031, valuation allowances were recorded against certain of its state NOL carryforwards. We do not believe it is more-likely-than-not that TAS will have sufficient revenue-generating operations in those states in the future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';margin-left:0pt;margin-right: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;">Valuation allowances of $0.4 million have been recorded against certain of the state NOL carryforwards. The $2.8 million of deferred tax assets for state NOL carryforwards, net of valuation allowances, reflects our conclusion that it is more-likely-than-not these assets will be realized based upon expected future earnings in certain of our subsidiaries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We regularly update our assessment of the realizability of our deferred tax assets, in particular, those related to state NOL carryforwards. A return to profitability in our subsidiaries with valuation allowances would result in a release </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">of a portion of the valuation allowances relating to realizable deferred tax assets. A sustained period of profitability could cause a change in our judgment of any remaining deferred tax assets. If that were to occur, then it is likely that we would reverse some or all of the remaining valuation allowances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Liabilities for Uncertain Tax Positions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties, is as follows (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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.6%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.72%;margin:0pt;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 28,756</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 10,199</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 2,966</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to current year</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 207</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to prior years</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 489</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 26,858</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 7,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for tax positions related to prior years</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (240)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for settlements with tax authorities</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><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:8.81%;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="-sec-ix-hidden:Hidden_qeeW_Mhz_kK5lW_N8t46sw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></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><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:8.81%;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;"> (8,301)</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><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:8.81%;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="-sec-ix-hidden:Hidden_YsyGhjT4RUuLi3Lets5Aqg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</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;"><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:8.81%;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;"> 29,452</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;"><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:8.81%;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;"> 28,756</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;"><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:8.81%;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;"> 10,199</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"/><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="display:inline-block;text-indent:0pt;width:36pt;"/>As of December 31, 2021, 2020 and 2019, we had $29.5 million, $28.8 million and $10.2&#160;million, respectively, of unrecognized tax benefits, which if recognized in future periods, would impact our effective tax rates. We have not accrued any amounts for potential interest and penalties related to the unrecognized tax benefits as of December 31, 2021, 2020 and 2019. We recognize potential interest and penalties related to unrecognized tax benefits in our provision for income taxes. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We are subject to taxation in the United States and various state jurisdictions. For the year ended December 31, 2020, our unrecognized tax benefits were reduced by $8.3 million due to a favorable settlement with the IRS for the 2014 and 2015 tax years. As of December 31, 2021, we remain open to IRS examination for the 2017 tax year forward.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">State income tax returns are generally subject to examination for a period of three to four years after filing the returns. However, the state impact of any federal audit adjustments and/or amendments remains subject to examination by various states for up to one year after formal notification to the states. As of December 31, 2021, we generally remain open to examination by various state tax authorities for the 2017 tax year forward. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We will have a reduction of $28.8 million in unrecognized tax benefits in the first quarter of 2022 due to a favorable settlement with the IRS for the 2016, 2017 and 2018 tax years. Any further reductions in our unrecognized tax benefits, due to the future recognition of those tax benefits, would affect our effective tax rates. </p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757889160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Benefit Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Employee Benefit Plans</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="top.Show.showAR( this, 'defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock', window );">Employee Benefit Plans</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;">12. Employee Benefit Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We and certain of our subsidiaries sponsor various retirement plans for most full-time and some part-time employees. These plans primarily consist of defined contribution plans. The defined contribution plans generally provide for contributions up to 2.5% of covered employees&#8217; salaries or wages. These contributions totaled $16.1&#160;million in 2021, $16.3&#160;million in 2020 and $14.2&#160;million in 2019. Of these amounts, approximately $0.6 million and $0.5 million were payable to the plans at December&#160;31, 2021 and 2020, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Certain of our subsidiaries also participate or have participated in various multi-employer pension plans for the benefit of employees who are union members. As of December&#160;31, 2021 and 2020, we had 5 and 6, respectively, who were union members. There were no contributions made to multi-employer pension plans in 2021, 2020 or 2019. The data available from administrators of other multi-employer pension plans is not sufficient to determine the accumulated benefit obligations, nor the net assets attributable to the multi-employer plans in which our employees participate or previously participated. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Certain individuals at one of our operating units are entitled to receive fixed annual payments that reach a maximum amount, as specified in the related agreements, for a 15 year period following retirement or, in some cases, the attainment of 65 years of age. We recognize the unfunded status of the plan as a non-current liability in our Consolidated Balance Sheet. Benefits vest 50% after ten years of service, 75% after fifteen years of service and are fully vested after </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">20 years of service. We had an unfunded benefit liability of $4.0&#160;million recorded as of both December&#160;31, 2021 and 2020.</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_CompensationAndEmployeeBenefitPlansTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 712<br> -URI http://asc.fasb.org/topic&amp;trid=2197446<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -URI http://asc.fasb.org/topic&amp;trid=2127225<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI http://asc.fasb.org/topic&amp;trid=2235017<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndEmployeeBenefitPlansTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757827496">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">13. Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable.  The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent.  We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered.  We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months.  As of December 31, 2021, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; 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 12pt 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 0pt 12pt 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. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 15% to 25% 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 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 0pt 12pt 0pt;">Our self-insurance arrangements as of December 31, 2021 were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Workers&#8217; Compensation&#8212;</i>The per-incident deductible for workers&#8217; compensation is $250,000. Losses above $250,000 are determined by statutory rules on a state-by-state basis and are fully covered by excess workers&#8217; compensation insurance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Employer&#8217;s Liability&#8212;</i>For employer&#8217;s liability, the per-incident deductible is $250,000 and then we have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as general liability and auto liability noted below).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">General Liability&#8212;</i>For general liability, the per-incident deductible is $250,000. We are fully insured for the next $10.0&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as employer&#8217;s liability noted above and auto liability noted below).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Auto Liability&#8212;</i>For auto liability, the per-incident deductible is $250,000. We are fully insured for the next $10.0&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as employer&#8217;s liability and general liability noted above).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"><i style="font-style:italic;">Employee Medical&#8212;</i>We have three medical plans. The deductible for employee group health claims is $350,000 per person, per policy (calendar) year for <span style="-sec-ix-hidden:Hidden_YtnPa85EZUG1LYw17wGRBw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">each</span></span> <span style="-sec-ix-hidden:Hidden_STJq7lThfkubfTudKLui7w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">plan</span></span>. Insurance then covers any responsibility for medical claims in excess of the deductible amount.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;">Our $150.0&#160;million of aggregate excess loss coverage above applicable per-incident deductibles represents one policy limit that applies to all lines of risk; we do not have a separate $150.0&#160;million of excess loss coverage for each of general liability, employer&#8217;s liability and auto liability.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 440<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>35
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757884072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Stockholders' Equity</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;">14. 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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2012 Equity Incentive Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In May 2012, our stockholders approved our 2012 Equity Incentive Plan (the &#8220;2012 Plan&#8221;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2012 Plan is 5.1&#160;million shares. As of December&#160;31, 2021, there were 2.9&#160;million shares available for issuance under this plan; however, following adoption of the 2017 Plan (described below), no additional shares will be issued under the 2012 Plan. We have outstanding and exercisable stock options under the 2012 Plan. The 2012 Plan will expire in May 2022. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">2017 Omnibus Incentive Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In May 2017, our stockholders approved our 2017 Omnibus Incentive Plan (the &#8220;2017 Plan&#8221;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2017 Plan is 2.9 million shares. As of December 31, 2021, there were 1.9&#160;million shares available for issuance under this plan. The 2017 Plan will expire in May 2027. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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 December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3&#160;million shares to be repurchased. As of December&#160;31, 2021, we have repurchased a cumulative total of 9.7&#160;million shares at an average price of $21.69 per share under the repurchase program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 year ended December 31, 2021, we repurchased 0.4&#160;million shares for approximately $27.1 million at an average price of $74.57 per share. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 0pt 12pt 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 0pt 12pt 0pt;">There were zero anti-dilutive stock options excluded from the calculation of diluted EPS for the year ended December 31, 2021 and less than 0.1 million anti-dilutive stock options excluded from the calculation of diluted EPS for the years ended December 31, 2020 and 2019. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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><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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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.19%;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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.28%;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;">Year Ended December 31, </b></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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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;white-space:nowrap;width:1.91%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2019</b></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:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,091</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,658</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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;"> 194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 196</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,854</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 204</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;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;"> 76</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;"> 73</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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;"> 36,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 36,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 37,131</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="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_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>36
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757850136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation</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;">15. Stock-Based Compensation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Grants of stock options, restricted stock and restricted stock units, and performance share units have been, under the 2012 Plan and under the 2017 Plan, determined and administered by the compensation committee of the Board of Directors. In 2019, the Board of Directors approved a change to the structure of long-term incentive grants to remove stock options, commencing with the March 2019 equity grant. Total stock-based compensation expense was $10.6&#160;million, $6.9 million and $5.9&#160;million for the years ended December&#160;31, 2021, 2020 and 2019, respectively. Stock-based compensation expense is recognized using the straight-line method over the vesting period and generally vests over a <span style="white-space:pre-wrap;">three-year</span><span style="white-space:pre-wrap;"> vesting period. Certain awards provide for accelerated vesting when the sum of an employee's age and years of service is at least </span><span style="white-space:pre-wrap;">75</span><span style="white-space:pre-wrap;">. We recognize forfeitures as they occur. Total income tax benefit recognized for stock-based compensation arrangements was $2.2&#160;million, $1.5 million and $1.3&#160;million for each of the years ended December&#160;31, 2021, 2020 and 2019. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We generally issue treasury shares for stock options and restricted stock, unless treasury shares are not available.  Upon the vesting of restricted shares, we have allowed the holder to elect to surrender an amount of shares to meet their statutory tax withholding requirements. These shares are accounted for as treasury stock based upon the value of the stock on the date of vesting.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Stock options are accounted for as equity instruments. The fair value of each option award is estimated, based on several assumptions, on the date of grant using the Black-Scholes option valuation model. We did not grant any options in 2019, 2020 or 2021. We had no unrecognized compensation cost related to stock options and no unvested stock options as of December 31, 2021. The total fair value of options vested during the year ended December&#160;31, 2021 was $0.4&#160;million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our stock option plans (shares 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:50%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.55%;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:3.29%;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.97%;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:3.29%;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:3.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:17.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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.31%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.55%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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.97%;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:3.29%;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:20.04%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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;">Stock Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;">Exercise Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> 268</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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.53</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (198)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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.95</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Options exercisable at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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: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:17.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:0.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;">The total intrinsic value of options exercised during the years ended December&#160;31, 2021, 2020 and 2019 was $10.8&#160;million, $3.2 million and $3.5&#160;million, respectively. As of December&#160;31, 2021, we have 0.1&#160;million options outstanding and exercisable; these options have a weighted-average exercise price of $34.97 per share, have a weighted-average remaining contractual term of <span style="white-space:pre-wrap;">5.0</span><span style="white-space:pre-wrap;">&#160;years and an aggregate intrinsic value of $4.5&#160;million. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes information about stock options outstanding at December&#160;31, 2021 (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.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: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:14.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: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:12.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.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:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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></tr><tr><td style="vertical-align:bottom;width:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:46.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;">Options&#160;Outstanding and Exercisable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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><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: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.83%;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><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: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.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;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Number</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Outstanding and</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Exercisable at</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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;">Range&#160;of&#160;Exercise&#160;Prices</b></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: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.83%;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;">12/31/2021</b></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: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.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;">Life (in years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.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;">Exercise&#160;Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$16.15 - $30.36</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;background:#cceeff;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:3.15%;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.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;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;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.13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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:49.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$36.25 - $54.38</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;margin:0pt;padding:0pt;"><p 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.63%;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.44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$16.15 - $54.38</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;">70</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"><span style="font-size:1pt;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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Restricted Stock and Restricted Stock Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our restricted stock plans (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.84%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.66%;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.42%;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:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.4%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.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;white-space:pre-wrap;">December 31,  2021</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Weighted</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Average&#160;Grant</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: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:71.84%;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;">Restricted&#160;Stock&#160;and&#160;Restricted&#160;Stock&#160;Units</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.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;">Date&#160;Fair&#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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45.21</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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;background:#cceeff;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;background:#cceeff;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.73</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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (72)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 54.53</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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;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;"> &#8212;</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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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;">115</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57.74</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;text-indent:36pt;margin:0pt 0pt 12pt 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;">Approximately $1.5&#160;million of compensation expense related to restricted stock and restricted stock units will be recognized over a weighted-average period of 1.8&#160;years. The total fair value of shares vested during the year ended </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">December&#160;31, 2021 was $3.9&#160;million. The weighted-average fair value per share of restricted stock shares and units awarded during 2021, 2020 and 2019 was $76.73, $39.03 and $51.02, respectively. The aggregate intrinsic value of restricted stock vested during the years ended December&#160;31, 2021, 2020 and 2019 was $5.5 million, $2.9&#160;million and $3.5 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Performance Stock Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Under the 2012 Plan and the 2017 Plan, we granted dollar-denominated performance vesting restricted stock units (&#8220;PSUs&#8221;), which cliff vest at the end of a three-year performance period. The PSUs are subject to two performance measures; 50% of the PSUs are based on the annual performance of our stock price relative to a group of our peers (total shareholder return) and 50% of the PSUs are measured based on meeting or exceeding a pre-determined annual earnings per share target as set by our Board of Directors (EPS). Depending on the Company&#8217;s performance in relation to the established performance measures, the awards may vest at zero to a maximum of 2.0 times the dollar-denominated award granted at target. Upon achievement of the necessary performance metrics, the award will be determined in dollars and may be settled in cash or stock based on the market price of the Company&#8217;s common stock at the end of the performance period, at our discretion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Compensation expense for dollar-denominated performance units will ultimately be equal to the final dollar value awarded to the grantee upon vesting, settled either in cash or stock. However, throughout the performance period we must record and accrue expense based on an estimate of that future payout. For units determined by EPS performance, the awards are evaluated quarterly against established targets in order to estimate the liability throughout the vesting period. For units determined by total shareholder return performance, a Monte Carlo simulation model was used to estimate accruals throughout the vesting period. The model simulates our total shareholder return and compares it against our peer group over the three-year performance period to produce a predicted distribution of relative share performance. This is applied to the reward criteria to give an expected value of the total shareholder return element. The calculated fair market value as of December 31, 2021 was $10.2 million. Of this amount, $3.6 million relates to the PSUs granted in 2019 whose performance period ended December 31, 2021. These awards will be settled within the upcoming year either in cash or stock. The expense related to performance stock units for the years ended December&#160;31, 2021, 2020 and 2019 was $5.7 million, $2.7 million and $1.9&#160;million, respectively. At the December 31, 2021 calculated fair market value, approximately $1.1&#160;million of compensation expense related to performance stock units will be recognized over a weighted-average period of 1.4&#160;years. </p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757993096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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;">16. Segment Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"/>We have two reportable segments: (a) our mechanical segment, which includes HVAC, plumbing, piping, and controls, as well as off-site construction, monitoring and fire protection; and (b) our electrical segment, which includes installation and servicing of electrical systems. We consider these two lines of business to be separate segments because they require different skill sets, and the business models for providing services have some differences, as a mechanical system requires ongoing maintenance and monitoring and an electrical system generally does not. However, the business model for installation of new systems or retrofitting existing systems is very similar between the two segments. Segment information is prepared on the same basis that our management reviews financial information for operational decision-making purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"/>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. On January 1, 2021, we completed a change in the structure of our internal organization that resulted in a portion of our electrical segment&#8217;s business being moved to the mechanical segment. We reallocated goodwill between our reorganized reporting units and have recast comparative prior period information for the reorganized reportable segments in accordance with the guidance on segment reporting. Accordingly, we have recast comparative prior period information for the reorganized reportable segments in the tables below. Substantially all of our revenue is generated, and all of our assets are located, in the United States, our country of domicile. The following table presents information about our reportable segments (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;table-layout:auto;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:10.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:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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:normal;width:5.46%;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:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.58%;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:normal;width:1.91%;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:normal;width:11.36%;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:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 1,452,527</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 690,364</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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,223</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,209,114</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2020</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 1,246,098</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 419,475</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 91,782</p></td><td style="vertical-align:bottom;white-space:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 1,757,355</p></td></tr></table><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><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,542,623</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 531,013</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 3,073,636</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 486,346</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 76,861</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 563,207</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 19,408</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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,413</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 509</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 22,330</p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,430,632</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 426,027</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,856,659</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 513,760</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 33,223</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 546,983</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 22,561</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 944</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 626</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 24,131</p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2019</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,272,031</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 343,246</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,615,277</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 469,347</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 32,596</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 501,943</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 28,070</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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,367</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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,313</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 31,750</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 3pt 0pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:127.5pt;"/><span style="display:inline-block;width:8pt;"/><span style="display:inline-block;width:6.95pt;"/><span style="display:inline-block;width:45.5pt;"/><span style="display:inline-block;width:18.05pt;"/><span style="display:inline-block;width:6.95pt;"/><span style="display:inline-block;width:38pt;"/><span style="display:inline-block;width:21pt;"/><span style="display:inline-block;width:6.95pt;"/><span style="display:inline-block;width:47.4pt;"/><span style="display:inline-block;width:17.5pt;"/><span style="display:inline-block;width:7pt;"/><span style="margin-right:0pt;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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 34<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8981-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8721-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 26<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8844-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8657-108599<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8721-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI http://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>38
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759044568">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Principles of Consolidation</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Principles of Consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">These financial statements are prepared in accordance with accounting principles generally accepted in the United States of America. The accompanying consolidated financial statements include our accounts and those of our subsidiaries in which we have a controlling interest. All intercompany accounts and transactions have been eliminated. Certain amounts in prior periods may have been reclassified to conform to the current period presentation. The effects of the reclassifications were not material to the consolidated financial statements.</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="top.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 12pt 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 0pt 12pt 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, deferred tax assets, 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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash Flow Information</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Cash Flow Information</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash paid (in thousands) for:</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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.87%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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:10.55%;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.53%;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:60.87%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 6,052</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 7,684</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 8,817</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes, net of refunds</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;"><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:8.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;"> 52,204</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;"><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:8.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;"> 51,286</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;"><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:10.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;"> 45,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Recently Adopted Accounting Pronouncements</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 December 2019, the FASB issued ASU No. 2019-12, &#8220;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes.&#8221; This standard simplifies the accounting for income taxes by eliminating certain exceptions to the guidance in Topic 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The standard also simplifies aspects of the accounting for franchise taxes and enacted changes in tax laws or rates and </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">clarifies the accounting for transactions that result in a step-up in the tax basis of goodwill. ASU No. 2019-12 is effective for fiscal years beginning after December 15, 2020 and interim periods within that year. We adopted ASU No. 2019-12 on January 1, 2021, and the impact was not material to our overall financial statements.</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;">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="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;">In March 2020, the FASB issued ASU No. 2020-04, &#8220;Reference Rate Reform (Topic 848).&#8221; The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (&#8220;LIBOR&#8221;) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 9) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We are currently evaluating the impact of the transition from LIBOR to alternative reference rates but do not expect a significant impact to our consolidated financial statements.</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 October 2021, the FASB issued ASU 2021-08, &#8220;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.&#8221; This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.</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><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 12pt 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="white-space:pre-wrap;">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.</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="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 the cost to cost measure of progress 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 measure of progress, 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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 costs and estimated earnings in excess of billings. 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 </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">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 Other 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 non-residential 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 (e.g., 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;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;">Starting in March 2020, we experienced negative impacts to our business due to the disruption caused by Coronavirus Disease 2019 (&#8220;COVID-19&#8221;). In March 2020, the World Health Organization categorized COVID-19 as a pandemic, and the President of the United States declared the COVID-19 outbreak a national emergency. The Company considered the impact of COVID-19 on the assumptions and estimates used to determine the results reported and asset valuations as of December 31, 2021 and December 31, 2020.</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 2020, we increased our loss rates and increased our specific reserves primarily due to the economic disruption caused by COVID-19, which was reflected in our bad debt expense in the prior year. This increase was primarily, but not exclusively, due to concern over collectability of receivables from customers more directly impacted by COVID-19. In 2021, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized.</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;">Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.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:0.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:5.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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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:0.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><td style="vertical-align:bottom;white-space:nowrap;width:5.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:0.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:6.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><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;white-space:nowrap;width:0.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:6.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:0.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:1.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;white-space:nowrap;width:9.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: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:0.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:4.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:0.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:6.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:31.01%;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">Year Ended December 31, </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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:31.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 colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">2021</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;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="2" style="vertical-align:bottom;width:6.41%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:6.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;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.05%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></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;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:5.6%;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;">Other</b></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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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,028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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,709</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 3,192</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 3,400</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;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:0.96%;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:4.64%;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;"> 315</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;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:0.96%;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:6.41%;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,907</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Impact of new accounting standard</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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:2.31%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 331</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 695</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Bad debt expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (970)</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (496)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> 14</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,452)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (10)</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Deductions for uncollectible receivables written off, net of recoveries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (742)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (244)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (986)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,431)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (735)</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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.02%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (2,166)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Credit allowance of acquired receivables on the acquisition date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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;"> 369</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"> &#8212;</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Reclass to other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> &#8212;</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;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:9.28%;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;"> &#8212;</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;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:0.96%;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:4.64%;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;"> (315)</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.41%;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;"> (315)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> 10,110</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 4,637</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,028</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;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:0.96%;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:4.64%;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;"> 44</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;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:0.96%;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:6.41%;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;"> 10,709</p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Inventories</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Inventories consist of parts and supplies that we purchase and hold for use in the ordinary course of business and are stated at the lower of cost or net realizable value using the average-cost method.</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Property and Equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment are stated at cost, and depreciation is computed using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are capitalized and amortized over the lesser of the expected life of the lease or the estimated useful life of the asset.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Expenditures for repairs and maintenance are charged to expense when incurred. Expenditures for major renewals and betterments, which extend the useful lives of existing equipment, are capitalized and depreciated over the remaining useful life of the equipment. Upon retirement or disposition of property and equipment, the cost and related </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">accumulated depreciation are removed from the accounts and any resulting gain or loss is recognized in &#8220;Gain on sale of assets&#8221; in the Statement of Operations.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Recoverability of Goodwill and Identifiable Intangible Assets</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recoverability of Goodwill and Identifiable Intangible Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We perform our annual impairment testing as of October 1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies (&#8220;public company approach&#8221;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#8220;EBITDA&#8221;).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.</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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock', window );">Long-Lived Assets</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Long-Lived Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Long-lived assets are comprised principally of identifiable intangible assets, property and equipment, lease right-of-use assets and deferred tax assets. We periodically evaluate whether events and circumstances have occurred that indicate that the remaining balances of these assets may not be recoverable. We use estimates of future undiscounted cash flows, as well as other economic and business factors, to assess the recoverability of these assets.</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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Acquisitions</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.</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;">Contingent Consideration</i>&#8212;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><i style="font-style:italic;">Contingent Assets and Liabilities</i>&#8212;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. Acquisition date fair value estimates are </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.</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="top.Show.showAR( this, 'defref_us-gaap_SelfInsuranceReservePolicyTextBlock', window );">Self-Insurance Liabilities</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance Liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 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. Our self-insurance arrangements are further discussed in Note&#160;13 &#8220;Commitments and Contingencies.&#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="top.Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyPolicy', window );">Warranty Costs</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Warranty Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 11pt 0pt;">We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#8217; warranties on equipment. We generally warrant labor for thirty days after servicing existing MEP systems. A reserve for warranty costs is estimated and recorded based upon the historical level of warranty claims and management&#8217;s estimate of future costs.</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="top.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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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;">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 states with varying 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 0pt 12pt 0pt;">Income taxes are provided for under the liability method, which takes into account differences between financial statement treatment and tax treatment of certain transactions. Deferred taxes are based on the difference between the financial reporting and tax basis of assets and liabilities. The deferred tax provision represents the change during the reporting period in the deferred tax assets and deferred tax liabilities, net of the effect of acquisitions and dispositions. Deferred tax assets include tax loss and credit carryforwards and are reduced by a valuation allowance if, based on available evidence, it is more-likely-than-not some portion or all of the deferred tax assets will not be realized.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant judgment is required in assessing the timing and amounts of deductible and taxable items. We record unrecognized tax benefits as liabilities when, despite our belief that our tax return positions are supportable, we believe that some portion of our uncertain tax positions may be disallowed. When facts and circumstances change, we adjust these liabilities through our provision for income taxes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">To the extent interest and penalties may be assessed by taxing authorities on any underpayment of income tax, such amounts are accrued and classified as a component in the provision for income taxes in our Consolidated Statements of Operations.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations of Credit Risk</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Concentrations of Credit Risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We provide services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for credit losses. We have a diverse customer base, with our top customer representing 9% of consolidated 2021 revenue.</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="top.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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><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 0pt 12pt 0pt;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable, interest rate swaps and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_InsuranceRecoveryPolicyPolicyTextBlock', window );">Insurance Recovery</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 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Insurance Recovery</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We recorded a $4.8 million gain in the fourth quarter of 2019 due to insurance proceeds we received in the fourth quarter. Approximately $1.6 million of the gain was recorded as a reduction in SG&amp;A, and the <span style="-sec-ix-hidden:Hidden_ya8cO3-ldUOAIAIbX8MKow;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;">remainder</span></span><span style="white-space:pre-wrap;"> was recorded as a reduction in Cost of Services expense.&#160;These proceeds related to recoverable costs that were primarily incurred prior to the fourth quarter in 2019.</span><span style="white-space:pre-wrap;"> </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="top.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 are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. As of December 31, 2021, the lease liabilities associated with these <span style="-sec-ix-hidden:Hidden_FgMkO2rf00CIiBtTbwWcSQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">finance leases</span></span> were $0.3 million. Leases with an initial term of 12 months or less are not recorded in the 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 some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $11.9 million in 2021, $7.7 million in 2020 and $8.4 million in 2019. 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 December 31, 2021 and 2020 was 4.0% and 4.2%, 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 years ended December 31, 2021, 2020 and 2019 was $34.2 million, $28.2 million and $24.8 million, respectively.</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 lease terms generally range from <span style="-sec-ix-hidden:Hidden_Jy-T07AOW0GkRD4aV4OpIQ;"><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. The weighted average remaining lease term for our operating leases was 8.7 years at December 31, 2021 and 7.5 years at December 31, 2020.</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;">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 years ended December 31, 2021, 2020 and 2019 was approximately $4.9 million, $4.2 million and $3.7 million, respectively.</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;">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.</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;">Finance lease right-of-use assets are included in &#8220;Property and equipment, net,&#8221; and current and long-term finance lease liabilities are included within &#8220;Current maturities of long-term debt&#8221; and &#8220;Long-term debt, net,&#8221; respectively, in the Consolidated Balance Sheet. 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:80%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.21%;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: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:14.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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: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:14.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></tr><tr><td style="vertical-align:middle;width:61.21%;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:17.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;">December 31, 2021</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: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.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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.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;"> 124,756</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,727</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;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:61.21%;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_ZoYV9Ak1x0qoBQBxKtcfzA;"><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.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:14.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;"> 19,050</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16,586</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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;"> 107,701</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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;"> 80,576</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.03%;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.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;"> 126,751</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.32%;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;"> 97,162</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;">The maturities of operating lease liabilities as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.66%;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;width:1.66%;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;width:10.4%;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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.66%;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.4%;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.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;margin:0pt;padding:0pt;"><p 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.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;"> 23,729</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 21,142</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 18,738</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 17,642</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 14,631</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 55,161</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 151,043</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> (24,292)</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 126,751</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;">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:66.86%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:2.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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;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:15.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;">2020</b></p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;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:13.53%;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,443</p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;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,346</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_InsuranceRecoveryPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for insurance recovery.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_InsuranceRecoveryPolicyPolicyTextBlock</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4273-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123345438&amp;loc=d3e61044-112788<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 35<br> -Paragraph 7A<br> -URI http://asc.fasb.org/extlink&amp;oid=125515542&amp;loc=SL120269220-210453<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3D<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL120267969-210447<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922895-210455<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 35<br> -Paragraph 13A<br> -URI http://asc.fasb.org/extlink&amp;oid=125515542&amp;loc=SL120267917-210453<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 35<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=124266218&amp;loc=SL120267834-210445<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 30<br> -Paragraph 4A<br> -URI http://asc.fasb.org/extlink&amp;oid=124256539&amp;loc=SL120269210-210444<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919260-210447<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL120267845-210446<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919253-210447<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919272-210447<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 30<br> -Paragraph 5A<br> -URI http://asc.fasb.org/extlink&amp;oid=124256539&amp;loc=SL120254536-210444<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3C<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL120267966-210447<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 30<br> -Paragraph 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=124268681&amp;loc=SL120267897-210452<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919244-210447<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3D<br> -URI http://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL120267862-210455<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.M.Q4)<br> -URI http://asc.fasb.org/extlink&amp;oid=122651532&amp;loc=SL122037091-237805<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3C<br> -URI http://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL120267859-210455<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3A<br> -URI http://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL120267853-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 60<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=7493716&amp;loc=d3e21868-110260<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13279-108611<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124437754&amp;loc=d3e543-108305<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130561-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130563-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130563-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130564-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_SelfInsuranceReservePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for self-insurance reserves, including, but not limited to incurred but not reported reserves (IBNR).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SelfInsuranceReservePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_StandardProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyPolicy</td>
</tr>
<tr>
<td style="padding-right: 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>39
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763179896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of cash paid</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Cash paid (in thousands) for:</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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:60.87%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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:10.55%;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.53%;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:60.87%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 6,052</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 7,684</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 8,817</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes, net of refunds</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;"><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:8.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;"> 52,204</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;"><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:8.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;"> 51,286</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;"><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:10.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;"> 45,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Schedule of activity in 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;">Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.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:0.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:5.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: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><td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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:0.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><td style="vertical-align:bottom;white-space:nowrap;width:5.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:0.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:6.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><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;white-space:nowrap;width:0.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:6.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:0.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:1.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;white-space:nowrap;width:9.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: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:0.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:4.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:0.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:6.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:31.01%;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">Year Ended December 31, </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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:31.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 colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;">2021</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:33.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;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="2" style="vertical-align:bottom;width:6.41%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:6.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;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</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:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.05%;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;">Service</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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="2" style="vertical-align:bottom;width:10.8%;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;">Construction</b></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;text-align:center;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:5.6%;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;">Other</b></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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;width:7.37%;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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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,028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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,709</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 3,192</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 3,400</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;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:0.96%;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:4.64%;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;"> 315</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;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:0.96%;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:6.41%;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,907</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Impact of new accounting standard</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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:0.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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:2.31%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 331</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 695</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Bad debt expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (970)</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (496)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> 14</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,452)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (10)</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Deductions for uncollectible receivables written off, net of recoveries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (742)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (244)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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.01%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (986)</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (1,431)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (735)</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;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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.02%;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:0.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"> (2,166)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Credit allowance of acquired receivables on the acquisition date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.44%;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;"> 369</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"> &#8212;</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;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Reclass to other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> &#8212;</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.51%;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:9.28%;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;"> &#8212;</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;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:0.96%;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:4.64%;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;"> (315)</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:right;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.41%;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;"> (315)</p></td></tr><tr><td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294</p></td><td style="vertical-align:bottom;white-space:nowrap;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="font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.97%;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:5.07%;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;"> 58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:0.96%;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:6.41%;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;"> 10,110</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:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:6.08%;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;"> 4,637</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9.28%;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;"> 6,028</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;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:0.96%;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:4.64%;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;"> 44</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;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:0.96%;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:6.41%;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;"> 10,709</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental cash flow information for the periods presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763895912">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customers</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="top.Show.showAR( this, 'defref_fix_ScheduleOfContractsInProgressTableTextBlock', window );">Schedule of contracts in progress</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;">Contracts in progress are as follows (in thousands):</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:71.72%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1pt;visibility:hidden;">&#8203;</span></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:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.05%;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, </b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.43%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.45%;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;">2020</b></p></td><td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.72%;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;">Costs incurred on contracts in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;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;"> 3,723,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;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;"> 3,103,580</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Estimated earnings, net of losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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;"> 589,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 548,435</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Billings to date</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (4,527,801)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (3,813,171)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less&#8212;Unbilled accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (61,881)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (45,596)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Less&#8212;Unbilled accounts receivable credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;background:#cceeff;border-bottom:1px solid #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (784)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (277,396)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"> (207,536)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;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:10.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Costs and estimated earnings in excess of billings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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;"> 18,622</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;">Plus&#8212;Costs and estimated earnings in excess of billings credit allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;background:#cceeff;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;"> 84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.15%;background:#cceeff;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;"> 79</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Billings in excess of costs and estimated earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (307,380)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (226,237)</p></td><td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"> (277,396)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"> (207,536)</p></td><td style="vertical-align:bottom;width:1.06%;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></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="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Schedule of disaggregation of revenue</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our consolidated 2021 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 16 &#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;margin:0pt;"><span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.8695679%;padding-left:0pt;padding-right:0pt;width:101.73%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:1.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: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:0.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: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:8.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: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:1.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: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:5.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: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:1.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: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:0.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: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:1.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: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:8.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: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:1.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: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:5.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: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: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: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:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;</b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,542,623</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 82.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,430,632</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 85.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 2,272,031</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 86.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 531,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 17.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 426,027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 14.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 343,246</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 13.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,356,688</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 44.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,112,075</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 38.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 886,668</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 33.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 390,251</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 12.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 487,922</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 17.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 412,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 15.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 308,799</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 319,426</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 11.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 348,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 417,901</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 371,105</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 358,155</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 13.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 174,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 163,717</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 162,507</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 6.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 213,386</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 6.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 239,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 248,083</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 9.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 112,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 3.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 86,799</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 3.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 104,693</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 99,019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 76,074</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 2.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 94,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 3.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.79%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.8%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:16.22%;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:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,421,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 46.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,333,739</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 46.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 1,201,122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 45.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 963,461</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 31.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 910,807</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 31.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 793,159</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 30.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 278,582</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 9.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 241,402</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 231,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"> 8.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 409,809</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 13.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 370,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 13.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;border-bottom:1px solid #000000;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 389,768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 14.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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></tr><tr><td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;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:0.05pt 3pt 0.05pt 0pt;"> 3,073,636</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,856,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.16%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"> 2,615,277</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.21%;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:0.05pt 3pt 0.05pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;">%</p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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;margin:0pt;"><span style="visibility:hidden;background:#ffff00;">&#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:81.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.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.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:9.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:2.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.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.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;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: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:9.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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;width:49.36%;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.27%;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;">Year Ended December 31, </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 style="vertical-align:bottom;white-space:nowrap;width:1.25%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:23.27%;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;">Year Ended December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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.27%;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;">2021</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;text-align:center;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.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;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Contract</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;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;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;width:11.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;">Liabilities</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;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;width:10.49%;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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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;width:11.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;">Liabilities</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 226,237</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;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,736</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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;"> 166,918</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change due to acquisitions / disposals</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:9.19%;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,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,523</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;text-align:right;margin:0pt;"><span style="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:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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,509</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.69%;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,885</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change related to credit allowance</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:9.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:10.51%;background:#cceeff;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.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.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:9.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (79)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other changes in the period</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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,620</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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;"> 6,456</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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;"> 19,434</p></td></tr><tr><td style="vertical-align:bottom;width:49.36%;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: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:9.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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.51%;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;"> 307,380</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;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.23%;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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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:1.66%;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.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;"> 226,237</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_ScheduleOfContractsInProgressTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of contracts in progress.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfContractsInProgressTableTextBlock</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_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>41
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763185464">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 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 December&#160;31, 2021 and 2020 (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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.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><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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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;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:1.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> 58,776</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 58,776</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 6,643</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 6,643</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 34,114</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 34,114</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.78%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.84%;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.14%;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.31%;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.78%;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.84%;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.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;">Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.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;"> 54,896</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 54,896</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 5,420</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 5,420</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> &#8212;</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 25,979</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.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;"> 25,979</p></td></tr><tr><td style="vertical-align:bottom;width:58.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap liability</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 42</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> &#8212;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.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;"> 42</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="top.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 0pt 12pt 0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level&#160;3) (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:80.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:75.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:0.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.28%;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.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:2.33%;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.28%;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.81%;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.59%;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;white-space:nowrap;width:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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:23.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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.67%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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: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:9.38%;background:#cceeff;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,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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';">&#160;&#160;&#160;&#160;</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:8.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;"> 28,497</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;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:0.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.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:9.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.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;"> 16,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;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:0.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.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:9.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(3,994)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(10,114)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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:75.65%;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:0.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.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:9.38%;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;"> (7,820)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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;"> (9,119)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;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:75.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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.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:9.38%;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;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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:8.81%;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;"> 25,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19279-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>42
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757993912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables) - Amteck<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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;text-indent:36pt;margin:0pt;">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;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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.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: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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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:78.39%;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.06%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,355</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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,409</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;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:78.39%;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.06%;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:18.54%;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;"> 12,900</p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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;"> 137,664</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.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></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,554</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,248</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 current assets</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;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,422</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;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,886</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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:3.06%;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:18.54%;background:#cceeff;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,076</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,700</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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;">  Operating lease right-of-use asset</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,997</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,489)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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</span></p></td><td style="vertical-align:middle;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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,199)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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 maturities of long-term debt</span></p></td><td style="vertical-align:middle;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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,860)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,115)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,889)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.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:18.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (785)</p></td></tr><tr><td style="vertical-align:bottom;width:78.39%;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.06%;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:18.54%;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;"> (7,882)</p></td></tr><tr><td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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;"> 137,664</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="top.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><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.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:1.98%;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;width:21.23%;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.98%;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;width:12.86%;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;width:2.13%;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;width:2.13%;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;width:12%;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:45.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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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;">Valuation Method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;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.86%;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;">Estimated Useful Life</p></td><td style="vertical-align:bottom;width:2.13%;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:2.13%;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:12%;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;">Estimated Fair Value</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.5 years</p></td><td style="vertical-align:bottom;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><td style="vertical-align:bottom;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><td style="vertical-align:bottom;white-space:nowrap;width: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;"> 7,800</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">23 years</p></td><td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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,600</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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:21.23%;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.98%;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;width:12.86%;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;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><td style="vertical-align:bottom;width:2.13%;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:12%;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;"> 37,300</p></td></tr><tr><td style="vertical-align:bottom;width:45.65%;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:1.98%;margin:0pt;padding:0pt;"><p style="font-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:21.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-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.86%;margin:0pt;padding:0pt;"><p style="font-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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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%;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;"> 57,700</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1486-128463<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>43
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759025896">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.0710907%;padding-left:0pt;padding-right:0pt;width:100.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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: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:nowrap;width:1.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:13.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.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:nowrap;width:1.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:11.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><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:1.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:8.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:57.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:1.69%;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.9%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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:13.47%;margin:0pt;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 Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.57%;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:57.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:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2019</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> 234,660</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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;"> 97,787</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 332,447</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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;"> 72,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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;"> 59,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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;"> 131,945</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2020</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 307,448</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.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;"> 156,944</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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:8.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 464,392</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;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;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 52,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 74,951</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.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:8.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 127,722</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Impact of segment reorganization</p></td><td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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:13.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 3pt 0pt 0pt;"> 1,101</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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;"> (1,101)</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;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;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:8.51%;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;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:57.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2021</p></td><td style="vertical-align:bottom;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.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;"> 361,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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;"> 592,114</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of components 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 0pt 12pt 0pt;">Identifiable intangible assets consist of the following (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:82%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:24.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:2.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:20.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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:2.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.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:9.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;white-space:nowrap;width:2.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.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.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Remaining Useful Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Book</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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;">in Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.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;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.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;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;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:20.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">7.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 330,572</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (130,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 255,692</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (103,919)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:20.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;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,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (20,091)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (12,600)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade Names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:20.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">19.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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;"> 114,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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;"> (22,697)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.54%;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;"> 91,495</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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.47%;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;"> (18,661)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.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:20.44%;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:2.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.25%;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.54%;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;"> 477,667</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (172,886)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.54%;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;"> 366,987</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.25%;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.47%;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;"> (135,180)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;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="top.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 0pt 12pt 0pt;">As of December&#160;31, 2021, future amortization expense of identifiable intangible assets was as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.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.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.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: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.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></tr><tr><td style="vertical-align:bottom;width:82.36%;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;">Year ending December 31&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;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:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p 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%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="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%;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,343</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;background:#cceeff;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,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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,312</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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.36%;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 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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;"> 131,933</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;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.36%;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 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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%;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;"> 304,781</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>44
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757884632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property and Equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of components of property and equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Property and equipment consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.32%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;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.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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:2.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><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="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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.51%;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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.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 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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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><td style="vertical-align:bottom;white-space:nowrap;width:2.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><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="font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;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&#160;Lives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="5" style="vertical-align:bottom;white-space:nowrap;width:27.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:0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.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;">in&#160;Years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:12.02%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Land</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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,167</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Transportation equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 132,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 113,802</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Machinery and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,386</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer and telephone equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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,065</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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,215</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Buildings and leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 74,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;background:#cceeff;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,683</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1 - 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,081</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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,861</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Construction in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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.74%;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;"> 1,668</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> 1,294</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:10.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:2.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.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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 293,379</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 264,408</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less&#8212;Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.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.74%;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;"> (164,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> (147,202)</p></td><td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.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.74%;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;"> 128,554</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:11.84%;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;"> 117,206</p></td><td style="vertical-align:bottom;white-space:nowrap;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></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763883528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Detail of Other Current Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Detail of Other Current Liabilities</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of other current liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Other current liabilities consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.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:2.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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:1.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:11.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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></tr><tr><td style="vertical-align:bottom;width:66.84%;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.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><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:29.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;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.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued warranty costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,969</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,914</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,050</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16,586</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued job losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,962</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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,151</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued sales and use tax</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,861</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,731</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,734</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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:11.92%;background:#cceeff;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,559</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Liabilities due to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="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.92%;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,280</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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;"> 37,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.55%;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.92%;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;"> 45,271</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;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.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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;"> 119,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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;"> 91,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;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_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301764066824">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 0pt;">Debt obligations consist of the following (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.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;width:1.4%;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.4%;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.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:2.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.4%;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.03%;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.22%;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:70.26%;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.4%;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:27.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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.4%;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="2" style="vertical-align:bottom;white-space:nowrap;width:12.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;">2021 </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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.44%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 220,000</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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;"> 70,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;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,000</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:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 135,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,954</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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;"> 31,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease liabilities (See Note 10)</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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;"> 266</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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total principal amount</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 388,220</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;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:11.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;"> 236,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less&#8212;unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.02%;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;"> (190)</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:1.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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> (267)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt, net of unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 388,030</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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:11.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;"> 235,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;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:1.4%;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.4%;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.02%;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;"> (2,788)</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:1.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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr><tr><td style="vertical-align:bottom;width:70.26%;background:#cceeff;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, net</p></td><td style="vertical-align:bottom;width:1.4%;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.4%;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.02%;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;"> 385,242</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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.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;"> 235,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock', window );">Schedule of future principal payments of long-term debt</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">At December&#160;31, 2021, future principal payments of debt are as follows (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.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: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:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.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><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></tr><tr><td style="vertical-align:bottom;width:84.53%;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;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;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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><td style="vertical-align:bottom;white-space:nowrap;width:9.78%;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: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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</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;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p 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.78%;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,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</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:1.67%;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.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;"> 27,981</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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</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:1.67%;margin:0pt;padding:0pt;"><p style="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.78%;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,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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:84.53%;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: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:1.67%;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.78%;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;"> 322,099</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></tr><tr><td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.67%;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.78%;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;"> 388,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;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>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock', window );">Schedule of interest expense</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Interest expense included the following primary elements (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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.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:2.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.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:7.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.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.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: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:2.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.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:7.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: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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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="8" style="vertical-align:bottom;white-space:nowrap;width:30.21%;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;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.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 style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on notes to former owners</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 1,052</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;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,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 1,531</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on borrowings and unused commitment fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 3,371</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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,319</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 6,887</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on interest rate swaps</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 499</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest expense on finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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.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.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:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 679</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 830</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 512</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of debt financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.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;"> 538</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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;"> 544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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;"> 387</p></td><td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;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.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.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:7.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;"> 6,196</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.37%;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;"> 8,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.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:7.48%;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;"> 9,317</p></td><td style="vertical-align:bottom;white-space:nowrap;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></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ScheduleOfFloatingInterestRateBasesTableTextBlock', window );">Schedule of market rates relating to interest options under the Facility</a></td>
<td class="text"><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:88.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.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:7.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Base Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;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.58%;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:1.63%;background:#cceeff;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:88.65%;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;">Federal Funds Rate plus 0.50%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;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.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;">0.57%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Wells Fargo Bank, N.A. Prime Rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">3.25%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">One-month LIBOR plus 1.00%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">1.10%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Eurodollar Rate Loan Option:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.58%;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.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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">One-month LIBOR</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">0.10%</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></tr><tr><td style="vertical-align:bottom;width:88.65%;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;">Six-month LIBOR</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;">0.34%</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></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="top.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;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:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:10.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.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:7.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:2.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:7.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:2.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:10.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.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></tr><tr><td style="vertical-align:bottom;width:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;margin:0pt;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&#160;Total&#160;Indebtedness&#160;to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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;">Credit&#160;Facility&#160;Adjusted&#160;EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.03%;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;1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.98%;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;1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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&#160;2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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: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;">2.50&#160;or&#160;greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.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:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.76%;background:#cceeff;margin:0pt;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:50.9%;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:10.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;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;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.76%;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:7.98%;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:2.76%;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:10.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;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Eurodollar Rate 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:10.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;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;background:#cceeff;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.76%;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.98%;background:#cceeff;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:2.76%;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.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.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Letter of credit fees</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:10.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;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p 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.98%;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.76%;margin:0pt;padding:0pt;"><p 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.98%;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:2.76%;margin:0pt;padding:0pt;"><p 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.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;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commitment fees on any portion of the Revolving Loan capacity not in use for borrowings or letters of credit at any given time</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:10.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;"> 0.20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;background:#cceeff;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.76%;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:7.98%;background:#cceeff;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.30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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;"> 0.35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%&#160;&#160;</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_fix_ScheduleOfFloatingInterestRateBasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of variable rate bases and spreads related to debt covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfFloatingInterestRateBasesTableTextBlock</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_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_InterestIncomeAndInterestExpenseDisclosureTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of interest income and expense, including, but not limited to, interest income and expense from investments, loans, and securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758876616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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;">Finance lease right-of-use assets are included in &#8220;Property and equipment, net,&#8221; and current and long-term finance lease liabilities are included within &#8220;Current maturities of long-term debt&#8221; and &#8220;Long-term debt, net,&#8221; respectively, in the Consolidated Balance Sheet. 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:80%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.21%;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: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:14.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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: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:14.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></tr><tr><td style="vertical-align:middle;width:61.21%;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:17.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;">December 31, 2021</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: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.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;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.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;"> 124,756</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,727</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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:14.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;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:61.21%;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_ZoYV9Ak1x0qoBQBxKtcfzA;"><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.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:14.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;"> 19,050</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="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16,586</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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;"> 107,701</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;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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;"> 80,576</p></td></tr><tr><td style="vertical-align:middle;width:61.21%;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.03%;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.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;"> 126,751</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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.32%;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;"> 97,162</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="top.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 as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.66%;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;width:1.66%;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;width:10.4%;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-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.66%;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.4%;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.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;margin:0pt;padding:0pt;"><p 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.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;"> 23,729</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 21,142</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 18,738</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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;"> 17,642</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 14,631</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 55,161</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:10.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;"> 151,043</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> (24,292)</p></td></tr><tr><td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"> 126,751</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="top.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:66.86%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:2.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.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><td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.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;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;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:15.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;">2020</b></p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;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:13.53%;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,443</p></td></tr><tr><td style="vertical-align:middle;width:66.86%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;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,346</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_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lease assets and liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental information related to leases.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763203112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of provision for income taxes relating to continuing operations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Our provision for income taxes relating to continuing operations consists of the following (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:96.45%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.5%;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.43%;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.51%;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:7.45%;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.42%;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.51%;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:7.45%;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.43%;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.53%;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:7.45%;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.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></tr><tr><td style="vertical-align:bottom;width:64.5%;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.43%;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="8" style="vertical-align:bottom;white-space:nowrap;width:31.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;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.43%;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.97%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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.97%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;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.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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current tax provision&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p 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.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;"> 31,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p 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.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;"> 36,556</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p 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.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;"> 33,281</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> 8,741</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> 12,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> 8,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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;"> 40,024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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;"> 49,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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;"> 41,669</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax provision (benefit)&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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><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.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.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><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.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:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;margin:0pt;padding:0pt;"><p style="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;"> 6,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;margin:0pt;padding:0pt;"><p style="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;"> (5,483)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;margin:0pt;padding:0pt;"><p style="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;"> (3,750)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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: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;"> 705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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: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;"> (2,470)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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: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;"> (501)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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:64.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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;"> 6,902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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;"> (7,953)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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,251)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;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;"> 46,926</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;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;"> 41,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;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;"> 37,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;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-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:1pt;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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of difference in income taxes provided for and the amounts determined by applying the federal statutory tax rate to income before income taxes results</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The provision for income taxes for the years ended December 31, 2021, 2020 and 2019 resulted in effective tax rates on continuing operations of 24.7%, 21.6% and 24.7%, respectively. The reasons for the differences between these effective tax rates and the federal statutory rates are as follows (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:95.68%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.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:1.91%;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.11%;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:7.1%;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.91%;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.14%;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:7.9%;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.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:1.14%;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:7.47%;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.15%;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:65.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;white-space:nowrap;width:1.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 colspan="8" style="vertical-align:bottom;white-space:nowrap;width:30.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.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;white-space:nowrap;width:1.91%;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.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:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.04%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;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.61%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Federal statutory rate of&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;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.11%;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:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.14%;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:7.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Income taxes at the federal statutory rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 39,958</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p 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.9%;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,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p 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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,866</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Increases (decreases) resulting from&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net state income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 7,340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,406</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,644</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (39)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (254)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (279)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> 640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;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,338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Nondeductible expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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,381</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;background:#cceeff;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,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;background:#cceeff;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,180</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">R&amp;D tax credit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (26,133)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,569)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">179D deduction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,207)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,062)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,126)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation deductions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,210)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (426)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (714)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr><tr><td style="vertical-align:bottom;width:65.39%;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.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;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:7.1%;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;"> 63</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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:7.9%;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;"> (380)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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:7.47%;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;"> 78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;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:65.39%;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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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%;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.1%;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;"> 46,926</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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.9%;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;"> 41,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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;"> 37,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of significant components of the net deferred tax assets and net deferred tax liabilities as reflected on the balance sheet</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Significant components of the deferred tax assets and deferred tax liabilities as reflected on the balance sheets are as follows (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:67.39%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.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><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.52%;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.22%;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.44%;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.52%;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.22%;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.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></tr><tr><td style="vertical-align:bottom;width:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;margin:0pt;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.61%;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:68.99%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.94%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;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.44%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accounts receivable and allowance for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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,878</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p 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.22%;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,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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,392</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;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,791</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accrued liabilities and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,255</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,944</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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,768</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net operating loss carryforwards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,379</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="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.22%;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,127</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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,851</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;background:#cceeff;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:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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;"> 758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 80,260</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Valuation allowances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (475)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (514)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> 83,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> 79,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities&#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.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:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,534)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (13,877)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease right-of-use asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (27,905)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (22,715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Long-term contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (964)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (609)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;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.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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (242)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (17,321)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,615)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;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:2.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.52%;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.22%;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;"> (1,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> (2,626)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> (62,822)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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.22%;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;"> (51,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;background:#cceeff;margin:0pt;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:68.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 21,160</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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.52%;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.22%;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;"> 28,062</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.61%;margin:0pt;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>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of deferred income tax assets and liabilities included in the consolidated balance sheets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The deferred tax assets and liabilities reflected above are included in the Consolidated Balance Sheets as follows (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:42.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:54.84%;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:3.84%;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.4%;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:15.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:3.84%;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.4%;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:15.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:0.96%;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:54.84%;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.84%;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:40.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;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.84%;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:18.25%;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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:18.25%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;background:#cceeff;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,401</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;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:54.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> 1,745</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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.4%;margin:0pt;padding:0pt;"><p 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.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;"> 1,339</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.96%;margin:0pt;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>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties, is as follows (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:77.14%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.6%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.13%;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.33%;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.81%;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.72%;margin:0pt;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.53%;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:62.6%;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.13%;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.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;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;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.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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2021</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2020</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><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.14%;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;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 28,756</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 10,199</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><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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 2,966</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to current year</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 207</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additions based on tax positions related to prior years</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 489</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 26,858</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><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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;"> 7,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for tax positions related to prior years</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;"><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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (240)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Reductions for settlements with tax authorities</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><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:8.81%;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="-sec-ix-hidden:Hidden_qeeW_Mhz_kK5lW_N8t46sw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></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><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:8.81%;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;"> (8,301)</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><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:8.81%;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="-sec-ix-hidden:Hidden_YsyGhjT4RUuLi3Lets5Aqg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> &#8212;</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;background:#cceeff;margin:0pt;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:62.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</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;"><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:8.81%;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;"> 29,452</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;"><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:8.81%;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;"> 28,756</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;"><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:8.81%;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;"> 10,199</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.53%;margin:0pt;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_fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of classification of deferred tax assets and liabilities recognized in the entity's statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 55<br> -Paragraph 217<br> -URI http://asc.fasb.org/extlink&amp;oid=124434304&amp;loc=d3e36027-109320<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757813496">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0pt 12pt 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><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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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.19%;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:70.42%;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.18%;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.91%;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:7.56%;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.91%;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:6.94%;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.91%;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:6.94%;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></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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.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 colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.28%;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;">Year Ended December 31, </b></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;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;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;white-space:nowrap;width:1.91%;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.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;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;">2019</b></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:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,091</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,658</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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;"> 194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 196</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,854</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 204</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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.56%;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;"> 76</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;"> 73</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="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="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.56%;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;"> 36,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 36,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.94%;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;"> 37,131</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="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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>50
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753036200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summary of activity under the entity's stock option plans</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our stock option plans (shares 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:50%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.55%;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:3.29%;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.97%;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:3.29%;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:3.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:17.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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.31%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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:33.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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.55%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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.29%;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.97%;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:3.29%;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:20.04%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;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;">Stock Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;">Exercise Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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;</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> 268</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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.53</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (198)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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.95</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Options exercisable at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="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.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;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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: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:17.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:0.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></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock', window );">Summary information about stock options outstanding</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes information about stock options outstanding at December&#160;31, 2021 (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:49.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: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:14.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: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:12.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.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:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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.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.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></tr><tr><td style="vertical-align:bottom;width:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:46.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;">Options&#160;Outstanding and Exercisable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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><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: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.83%;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><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: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.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;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Number</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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%;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:10.63%;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.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Outstanding and</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.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;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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Exercisable at</b></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-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.64%;margin:0pt;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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;">Range&#160;of&#160;Exercise&#160;Prices</b></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: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.83%;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;">12/31/2021</b></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: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.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;">Life (in years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.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;">Exercise&#160;Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$16.15 - $30.36</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;background:#cceeff;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:3.15%;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.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;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;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.13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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:49.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$36.25 - $54.38</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;margin:0pt;padding:0pt;"><p 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.63%;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.44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$16.15 - $54.38</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;">70</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;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','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%;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.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;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>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock', window );">Summary of information about nonvested stock option awards and changes</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes activity under our restricted stock plans (shares 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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.84%;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.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><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.66%;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.42%;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:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.4%;margin:0pt;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.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></tr><tr><td style="vertical-align:bottom;width:71.84%;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.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;white-space:pre-wrap;">December 31,  2021</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Weighted</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: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:71.84%;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;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.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;">Average&#160;Grant</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: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:71.84%;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;">Restricted&#160;Stock&#160;and&#160;Restricted&#160;Stock&#160;Units</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.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;">Date&#160;Fair&#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;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45.21</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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;background:#cceeff;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</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;background:#cceeff;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.73</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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (72)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 54.53</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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;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;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.42%;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;"> &#8212;</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:71.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unvested at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="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.23%;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;">115</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p 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.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57.74</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><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_ScheduleOfNonvestedShareActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301757903656">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Summary of information about reportable segments</a></td>
<td class="text"><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:32.36%;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:normal;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:normal;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:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:normal;width:10.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:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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:normal;width:5.46%;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:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.58%;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:normal;width:1.91%;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:normal;width:11.36%;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:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 1,452,527</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 690,364</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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,223</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,209,114</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total Assets at December 31, 2020</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 1,246,098</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 419,475</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 91,782</p></td><td style="vertical-align:bottom;white-space:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 1,757,355</p></td></tr></table><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><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,542,623</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 531,013</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 3,073,636</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 486,346</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 76,861</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 563,207</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 19,408</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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,413</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 509</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 22,330</p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,430,632</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 426,027</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,856,659</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 513,760</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 33,223</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 546,983</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 22,561</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 944</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 626</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 24,131</p></td></tr><tr><td style="vertical-align:bottom;width:32.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:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:10.64%;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:normal;width:4.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:normal;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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:11.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></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:65.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;">Year Ended December 31, 2019</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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.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;width:12.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 Services</b></p></td><td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;width:11.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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:10.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;"> 2,272,031</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 343,246</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 2,615,277</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;margin:0pt;padding: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:10.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;"> 469,347</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;margin:0pt;padding: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.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;"> 32,596</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:12.11%;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:normal;width:4.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;margin:0pt;padding: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:11.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;"> 501,943</p></td></tr><tr><td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Capital Expenditures</p></td><td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:10.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;"> 28,070</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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.45%;background:#cceeff;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,367</p></td><td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times 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.91%;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:12.11%;background:#cceeff;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,313</p></td><td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:11.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;"> 31,750</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8813-108599<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763203400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business and Organization (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_SystemInstallationInNewlyConstructedFacilitiesMember', window );">Installation of systems in newly constructed facilities</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="top.Show.showAR( this, 'defref_fix_ScheduleOfBusinessAndOrganizationLineItems', window );"><strong>Business and Organization</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="top.Show.showAR( this, 'defref_fix_SalesRevenueServicesNetPercentage', window );">Percentage of revenue attributable to services</a></td>
<td class="nump">46.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="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_MaintenanceRepairAndReplacementServiceMember', window );">Maintenance, repair and replacement services</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="top.Show.showAR( this, 'defref_fix_ScheduleOfBusinessAndOrganizationLineItems', window );"><strong>Business and Organization</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="top.Show.showAR( this, 'defref_fix_SalesRevenueServicesNetPercentage', window );">Percentage of revenue attributable to services</a></td>
<td class="nump">53.70%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_SalesRevenueServicesNetPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of net services revenue to total net revenue from the services rendered as of the year end.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SalesRevenueServicesNetPercentage</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_fix_ScheduleOfBusinessAndOrganizationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfBusinessAndOrganizationLineItems</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_srt_ProductOrServiceAxis=fix_SystemInstallationInNewlyConstructedFacilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_SystemInstallationInNewlyConstructedFacilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MaintenanceRepairAndReplacementServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MaintenanceRepairAndReplacementServiceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>53
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301763193752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_CashPaidAbstract', window );"><strong>Cash paid for:</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="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest</a></td>
<td class="nump">$ 6,052<span></span>
</td>
<td class="nump">$ 7,684<span></span>
</td>
<td class="nump">$ 8,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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes</a></td>
<td class="nump">$ 52,204<span></span>
</td>
<td class="nump">$ 51,286<span></span>
</td>
<td class="nump">$ 45,288<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_CashPaidAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CashPaidAbstract</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_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3367-108585<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753350392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowance for Doubtful Accounts Receivable [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at beginning of year</a></td>
<td class="nump">$ 10,709<span></span>
</td>
<td class="nump">$ 6,907<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal', window );">Impact of new accounting standard</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">695<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (benefit)</a></td>
<td class="num">(1,452)<span></span>
</td>
<td class="nump">5,253<span></span>
</td>
<td class="nump">$ 2,978<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Deductions for uncollectible receivables written off, net of recoveries</a></td>
<td class="num">(986)<span></span>
</td>
<td class="num">(2,166)<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="top.Show.showAR( this, 'defref_fix_AllowanceForDoubtfulAccountsReceivableAcquired', window );">Credit allowance of acquired receivables on the acquisition date</a></td>
<td class="nump">1,839<span></span>
</td>
<td class="nump">335<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="top.Show.showAR( this, 'defref_fix_ReclassificationOfAllowanceForCreditLosses', window );">Reclass to other current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(315)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at end of year</a></td>
<td class="nump">10,110<span></span>
</td>
<td class="nump">10,709<span></span>
</td>
<td class="nump">6,907<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_ServicesActivityMember', window );">Service</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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowance for Doubtful Accounts Receivable [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at beginning of year</a></td>
<td class="nump">4,637<span></span>
</td>
<td class="nump">3,192<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal', window );">Impact of new accounting standard</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">310<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (benefit)</a></td>
<td class="num">(970)<span></span>
</td>
<td class="nump">2,566<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Deductions for uncollectible receivables written off, net of recoveries</a></td>
<td class="num">(742)<span></span>
</td>
<td class="num">(1,431)<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="top.Show.showAR( this, 'defref_fix_AllowanceForDoubtfulAccountsReceivableAcquired', window );">Credit allowance of acquired receivables on the acquisition date</a></td>
<td class="nump">369<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at end of year</a></td>
<td class="nump">3,294<span></span>
</td>
<td class="nump">4,637<span></span>
</td>
<td class="nump">3,192<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_ConstructionActivitiesMember', window );">Construction</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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowance for Doubtful Accounts Receivable [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at beginning of year</a></td>
<td class="nump">6,028<span></span>
</td>
<td class="nump">3,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="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal', window );">Impact of new accounting standard</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">331<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (benefit)</a></td>
<td class="num">(496)<span></span>
</td>
<td class="nump">2,697<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Deductions for uncollectible receivables written off, net of recoveries</a></td>
<td class="num">(244)<span></span>
</td>
<td class="num">(735)<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="top.Show.showAR( this, 'defref_fix_AllowanceForDoubtfulAccountsReceivableAcquired', window );">Credit allowance of acquired receivables on the acquisition date</a></td>
<td class="nump">1,470<span></span>
</td>
<td class="nump">335<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at end of year</a></td>
<td class="nump">6,758<span></span>
</td>
<td class="nump">6,028<span></span>
</td>
<td class="nump">3,400<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductAndServiceOtherMember', window );">Other.</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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowance for Doubtful Accounts Receivable [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at beginning of year</a></td>
<td class="nump">44<span></span>
</td>
<td class="nump">315<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal', window );">Impact of new accounting standard</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (benefit)</a></td>
<td class="nump">14<span></span>
</td>
<td class="num">(10)<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="top.Show.showAR( this, 'defref_fix_ReclassificationOfAllowanceForCreditLosses', window );">Reclass to other current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(315)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at end of year</a></td>
<td class="nump">$ 58<span></span>
</td>
<td class="nump">$ 44<span></span>
</td>
<td class="nump">$ 315<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_AllowanceForDoubtfulAccountsReceivableAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the allowance for receivables acquired in a business acquisition.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AllowanceForDoubtfulAccountsReceivableAcquired</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_ReclassificationOfAllowanceForCreditLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss reclassified into other liabilities during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReclassificationOfAllowanceForCreditLosses</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_AccountsReceivableChangeInMethodCreditLossExpenseReversal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable from change in methodology.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919244-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=fix_ServicesActivityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ServicesActivityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ConstructionActivitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ConstructionActivitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductAndServiceOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductAndServiceOtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759771400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Risk (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyDisclosureAbstract', window );"><strong>Warranty Costs</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="top.Show.showAR( this, 'defref_fix_WarrantyPeriodOfLaborAfterServicing', window );">Labor warranty period after servicing of existing MEP system</a></td>
<td class="text">30 days<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=fix_SalesRevenueMember', window );">Revenue | Customer concentration | Minimum</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="top.Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyDisclosureAbstract', window );"><strong>Warranty Costs</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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Single customer, percentage of revenue</a></td>
<td class="nump">9.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_WarrantyPeriodOfLaborAfterServicing">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the labor warranty period after servicing of existing MEP system.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_WarrantyPeriodOfLaborAfterServicing</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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=fix_SalesRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=fix_SalesRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759025896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2019 </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="top.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="top.Show.showAR( this, 'defref_us-gaap_GainOnBusinessInterruptionInsuranceRecovery', window );">Gain due to insurance proceeds received</a></td>
<td class="nump">$ 4.8<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="top.Show.showAR( this, 'defref_fix_GainRecordedAsReductionInSga', window );">Gain recorded as reduction in SG&amp;A</a></td>
<td class="nump">1.6<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="top.Show.showAR( this, 'defref_fix_GainRecordedAsReductionInCostOfServicesExpense', window );">Gain recorded as reduction in cost of services expense</a></td>
<td class="nump">$ 3.2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_GainRecordedAsReductionInCostOfServicesExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents amount of gain recorded as reduction in cost of services expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_GainRecordedAsReductionInCostOfServicesExpense</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_GainRecordedAsReductionInSga">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gain recorded as reduction in SG&amp;A, amount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_GainRecordedAsReductionInSga</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_GainOnBusinessInterruptionInsuranceRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net amount (to the extent disclosed within this portion of the income statement) by which an insurance settlement exceeds incremental costs incurred from the event causing an interruption of business, plus the insurance award for earnings lost from the event, such as a natural catastrophe, explosion or fire.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=114868897&amp;loc=SL114872001-224240<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainOnBusinessInterruptionInsuranceRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>57
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753106824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue from Contracts with Customers - Revenue Recognition (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesLongTermContractsOrProgramsAbstract', window );"><strong>Contracts in progress</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="top.Show.showAR( this, 'defref_us-gaap_ReceivablesLongTermContractsOrPrograms', window );">Costs incurred on contracts in progress</a></td>
<td class="nump">$ 3,723,715<span></span>
</td>
<td class="nump">$ 3,103,580<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="top.Show.showAR( this, 'defref_fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram', window );">Estimated earnings, net of losses</a></td>
<td class="nump">589,286<span></span>
</td>
<td class="nump">548,435<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="top.Show.showAR( this, 'defref_fix_BilledContractReceivablesContractsInProgress', window );">Less-Billings to date</a></td>
<td class="num">(4,527,801)<span></span>
</td>
<td class="num">(3,813,171)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnbilledContractsReceivable', window );">Less-Unbilled accounts receivable</a></td>
<td class="num">(61,881)<span></span>
</td>
<td class="num">(45,596)<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="top.Show.showAR( this, 'defref_fix_UnbilledAccountsReceivableAllowanceForCreditLoss', window );">Less-Unbilled accounts receivable credit allowance</a></td>
<td class="num">(715)<span></span>
</td>
<td class="num">(784)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ContractReceivablesContractsInProcessNetReceivableLiability', window );">Contracts in progress</a></td>
<td class="num">(277,396)<span></span>
</td>
<td class="num">(207,536)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings</a></td>
<td class="nump">29,900<span></span>
</td>
<td class="nump">18,622<span></span>
</td>
<td class="nump">$ 2,736<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="top.Show.showAR( this, 'defref_fix_CostsInExcessOfBillingsAllowanceForCreditLosses', window );">Plus-Costs and estimated earnings in excess of billings credit allowance</a></td>
<td class="nump">84<span></span>
</td>
<td class="nump">79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="num">$ (307,380)<span></span>
</td>
<td class="num">(226,237)<span></span>
</td>
<td class="num">$ (166,918)<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="top.Show.showAR( this, 'defref_fix_RetentionProvisionsConstructionContractsHoldingPeriod', window );">Period during which progress billings or contract price can be withheld until completion of work</a></td>
<td class="text">6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConstructionContractorReceivableRetainage', window );">Retention receivable</a></td>
<td class="nump">$ 139,500<span></span>
</td>
<td class="nump">124,100<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="top.Show.showAR( this, 'defref_fix_ConstructionContractorRetainagePayable', window );">Retention payable</a></td>
<td class="nump">$ 24,000<span></span>
</td>
<td class="nump">$ 22,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms', window );">Revenue, Performance Obligation, Description of Payment Terms</a></td>
<td class="text">We typically invoice our customers with payment terms of net due in 30 days<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="top.Show.showAR( this, 'defref_fix_ReceivableDueTerm', window );">Receivable payment terms (in days)</a></td>
<td class="text">30 days<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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesLongTermContractsOrProgramsAbstract', window );"><strong>Contracts in progress</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="top.Show.showAR( this, 'defref_fix_ReceivableDueTerm', window );">Receivable payment terms (in days)</a></td>
<td class="text">45 days<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="top.Show.showAR( this, 'defref_fix_PaymentsReceivedTerm', window );">Payments received term (in days)</a></td>
<td class="text">30 days<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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesLongTermContractsOrProgramsAbstract', window );"><strong>Contracts in progress</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="top.Show.showAR( this, 'defref_fix_ReceivableDueTerm', window );">Receivable payment terms (in days)</a></td>
<td class="text">60 days<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="top.Show.showAR( this, 'defref_fix_PaymentsReceivedTerm', window );">Payments received term (in days)</a></td>
<td class="text">90 days<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_BilledContractReceivablesContractsInProgress">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Billed contract receivables, contracts in progress.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BilledContractReceivablesContractsInProgress</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_ConstructionContractorRetainagePayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amounts owed to vendors and subcontractors that have been withheld because of retainage provisions in a contract to be paid. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ConstructionContractorRetainagePayable</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_ContractReceivablesContractsInProcessNetReceivableLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the net receivable (liability), as of the balance sheet date, for contracts in process in which contracts with billings in excess of costs are netted against contracts with costs in excess of billings.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ContractReceivablesContractsInProcessNetReceivableLiability</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_CostsInExcessOfBillingsAllowanceForCreditLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit losses on receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CostsInExcessOfBillingsAllowanceForCreditLosses</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_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of the offset related to government or other customer advances received on a contract when the expected advances will be applied in payment to those particular charges of the receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram</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_PaymentsReceivedTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of days in which the entity receives payment from customers.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PaymentsReceivedTerm</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_ReceivableDueTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The payment terms for receivables in days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReceivableDueTerm</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_RetentionProvisionsConstructionContractsHoldingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period during which progress billings or the contract price can be withheld by customers until after the completion of work on the project.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_RetentionProvisionsConstructionContractsHoldingPeriod</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_UnbilledAccountsReceivableAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ConstructionContractorReceivableRetainage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of right to consideration in exchange for good or service transferred to customer withheld under retainage provision in long-term contract or program when right to consideration is unconditional.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 910<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123353855&amp;loc=SL119991598-234733<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConstructionContractorReceivableRetainage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130533-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ReceivablesLongTermContractsOrPrograms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount to be collected within one year of the balance sheet date (or one operating cycle, if longer) from customers in accordance with the contractual provisions of long-term contracts or programs including amounts billed and unbilled as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesLongTermContractsOrPrograms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ReceivablesLongTermContractsOrProgramsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesLongTermContractsOrProgramsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Description of payment terms in contract with customer. Includes, but is not limited to, timing of payment, existence of financing component, variability of consideration and constraint on variable consideration.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(c)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123371682&amp;loc=d3e55302-109406<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>58
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755747992">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 3,073,636<span></span>
</td>
<td class="nump">$ 2,856,659<span></span>
</td>
<td class="nump">$ 2,615,277<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="top.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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=fix_IndustrialPropertyCustomerMember', window );">Industrial</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 1,356,688<span></span>
</td>
<td class="nump">$ 1,112,075<span></span>
</td>
<td class="nump">$ 886,668<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">44.10%<span></span>
</td>
<td class="nump">38.90%<span></span>
</td>
<td class="nump">33.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 390,251<span></span>
</td>
<td class="nump">$ 487,922<span></span>
</td>
<td class="nump">$ 412,318<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">12.70%<span></span>
</td>
<td class="nump">17.10%<span></span>
</td>
<td class="nump">15.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 308,799<span></span>
</td>
<td class="nump">$ 319,426<span></span>
</td>
<td class="nump">$ 348,640<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">10.10%<span></span>
</td>
<td class="nump">11.20%<span></span>
</td>
<td class="nump">13.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 417,901<span></span>
</td>
<td class="nump">$ 371,105<span></span>
</td>
<td class="nump">$ 358,155<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">13.60%<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="nump">13.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 174,813<span></span>
</td>
<td class="nump">$ 163,717<span></span>
</td>
<td class="nump">$ 162,507<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">5.70%<span></span>
</td>
<td class="nump">5.70%<span></span>
</td>
<td class="nump">6.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 213,386<span></span>
</td>
<td class="nump">$ 239,541<span></span>
</td>
<td class="nump">$ 248,083<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="top.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.40%<span></span>
</td>
<td class="nump">9.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 112,779<span></span>
</td>
<td class="nump">$ 86,799<span></span>
</td>
<td class="nump">$ 104,693<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">3.70%<span></span>
</td>
<td class="nump">3.00%<span></span>
</td>
<td class="nump">4.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="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=us-gaap_OtherCustomerMember', window );">Other</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 99,019<span></span>
</td>
<td class="nump">$ 76,074<span></span>
</td>
<td class="nump">$ 94,213<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">3.20%<span></span>
</td>
<td class="nump">2.70%<span></span>
</td>
<td class="nump">3.60%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 1,421,784<span></span>
</td>
<td class="nump">$ 1,333,739<span></span>
</td>
<td class="nump">$ 1,201,122<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">46.30%<span></span>
</td>
<td class="nump">46.70%<span></span>
</td>
<td class="nump">45.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 963,461<span></span>
</td>
<td class="nump">$ 910,807<span></span>
</td>
<td class="nump">$ 793,159<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">31.30%<span></span>
</td>
<td class="nump">31.90%<span></span>
</td>
<td class="nump">30.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 278,582<span></span>
</td>
<td class="nump">$ 241,402<span></span>
</td>
<td class="nump">$ 231,228<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">9.10%<span></span>
</td>
<td class="nump">8.40%<span></span>
</td>
<td class="nump">8.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 409,809<span></span>
</td>
<td class="nump">$ 370,711<span></span>
</td>
<td class="nump">$ 389,768<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">13.30%<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="nump">14.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="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_MechanicalServicesMember', window );">Mechanical Services</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 2,542,623<span></span>
</td>
<td class="nump">$ 2,430,632<span></span>
</td>
<td class="nump">$ 2,272,031<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">82.70%<span></span>
</td>
<td class="nump">85.10%<span></span>
</td>
<td class="nump">86.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="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=fix_ElectricalServicesMember', window );">Electrical Services</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 531,013<span></span>
</td>
<td class="nump">$ 426,027<span></span>
</td>
<td class="nump">$ 343,246<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="top.Show.showAR( this, 'defref_fix_PercentageOfRevenueFromContractWithCustomer', window );">Percentage of revenue from contract with customer (as a percent)</a></td>
<td class="nump">17.30%<span></span>
</td>
<td class="nump">14.90%<span></span>
</td>
<td class="nump">13.10%<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of revenue from contract with customers.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=fix_IndustrialPropertyCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IndustrialPropertyCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_OfficeBuildingCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_HealthcareSectorCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_GovernmentCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RetailRestaurantsAndEntertainmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MultiFamilyAndResidentialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_us-gaap_StatementBusinessSegmentsAxis=fix_NewConstructionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ProductOrServiceAxis=fix_MechanicalServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ElectricalServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ElectricalServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759922424">
<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> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Balance at beginning of period</a></td>
<td class="nump">$ 18,622<span></span>
</td>
<td class="nump">$ 2,736<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Change due to acquisitions / disposals</a></td>
<td class="nump">10,356<span></span>
</td>
<td class="nump">9,509<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal', window );">Change related to credit allowance</a></td>
<td class="num">(5)<span></span>
</td>
<td class="num">(79)<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="top.Show.showAR( this, 'defref_fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional', window );">Other changes in the period</a></td>
<td class="nump">927<span></span>
</td>
<td class="nump">6,456<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Balance at end of period</a></td>
<td class="nump">29,900<span></span>
</td>
<td class="nump">18,622<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Balance at beginning of period</a></td>
<td class="nump">226,237<span></span>
</td>
<td class="nump">166,918<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Change due to acquisitions / disposals</a></td>
<td class="nump">36,523<span></span>
</td>
<td class="nump">39,885<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized', window );">Other changes in the period</a></td>
<td class="nump">44,620<span></span>
</td>
<td class="nump">19,434<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Balance at end of period</a></td>
<td class="nump">307,380<span></span>
</td>
<td class="nump">226,237<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue related to our contract liabilities</a></td>
<td class="nump">$ 207,600<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="top.Show.showAR( this, 'defref_us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis=us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member', window );">Calculated under Revenue Guidance in Effect before Topic 606 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue related to our contract liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 165,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_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in contract with customer assets due to change in conditional versus unconditional.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional</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_ChangeInContractWithCustomerAssetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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, from business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130533-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 to consideration is unconditional.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130543-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130534-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InitialApplicationPeriodCumulativeEffectTransitionAxis=us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_InitialApplicationPeriodCumulativeEffectTransitionAxis=us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759907976">
<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">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2021 </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="top.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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-01-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="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 2,310<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-01-01 | Minimum</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="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Expected percentage of remaining performance obligations</a></td>
<td class="nump">80.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-01-01 | Maximum</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="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Expected percentage of remaining performance obligations</a></td>
<td class="nump">85.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The term of renewable service maintenance agreements in years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130558-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=2022-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=2022-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>61
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301754979608">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="top.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>
<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="top.Show.showAR( this, 'defref_fix_LifeInsuranceContractsNumberOfEmployeesCovered', window );">Number of employees covered under life insurance policies | item</a></td>
<td class="nump">85<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="top.Show.showAR( this, 'defref_fix_LifeInsuranceContractsFaceAmount', window );">Combined face value of life insurance policies</a></td>
<td class="nump">$ 62,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashSurrenderValueOfLifeInsurance', window );">Cash surrender value</a></td>
<td class="nump">6,600<span></span>
</td>
<td class="nump">$ 5,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment charges</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_fix_WeightedAverageCostOfCapital', window );">Weighted average cost of capital</a></td>
<td class="nump">10.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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_fix_WeightedAverageCostOfCapital', window );">Weighted average cost of capital</a></td>
<td class="nump">16.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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at beginning of year</a></td>
<td class="nump">$ 25,979<span></span>
</td>
<td class="nump">28,497<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues', window );">Issuances</a></td>
<td class="nump">19,949<span></span>
</td>
<td class="nump">16,715<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Settlements</a></td>
<td class="num">(3,994)<span></span>
</td>
<td class="num">(10,114)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Adjustments to fair value</a></td>
<td class="nump">7,820<span></span>
</td>
<td class="nump">9,119<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at end of period</a></td>
<td class="nump">34,114<span></span>
</td>
<td class="nump">25,979<span></span>
</td>
<td class="nump">28,497<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Cash and cash equivalents</a></td>
<td class="nump">58,776<span></span>
</td>
<td class="nump">54,896<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashSurrenderValueFairValueDisclosure', window );">Life insurance-cash surrender value</a></td>
<td class="nump">6,643<span></span>
</td>
<td class="nump">5,420<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="top.Show.showAR( this, 'defref_fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate', window );">Contingent earn-out obligations</a></td>
<td class="nump">34,114<span></span>
</td>
<td class="nump">25,979<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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsFairValueDisclosure', window );">Cash and cash equivalents</a></td>
<td class="nump">58,776<span></span>
</td>
<td class="nump">54,896<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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashSurrenderValueFairValueDisclosure', window );">Life insurance-cash surrender value</a></td>
<td class="nump">6,643<span></span>
</td>
<td class="nump">5,420<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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate', window );">Contingent earn-out obligations</a></td>
<td class="nump">34,114<span></span>
</td>
<td class="nump">25,979<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsNonrecurringMember', window );">Non recurring basis | Significant Unobservable Inputs (Level 3)</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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment charges</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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap</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="top.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>
<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="top.Show.showAR( this, 'defref_fix_DerivativeNetLossOnDerivative', window );">Net loss on derivative</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">300<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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap | Not Designated as Hedging Instrument, Economic Hedge [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_fix_DerivativeInstrumentNotionalAmount', window );">Notional amount</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap | Recurring basis | Total | Not Designated as Hedging Instrument, Economic Hedge [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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Interest rate swap liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">42<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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap | Recurring basis | Significant Other Observable Inputs (Level 2) | Not Designated as Hedging Instrument, Economic Hedge [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Interest rate swap liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 42<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_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, as of the balance sheet date, of potential cash payments under the contingent consideration arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate</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_DerivativeInstrumentNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Derivative instrument notional amount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DerivativeInstrumentNotionalAmount</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>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_DerivativeNetLossOnDerivative">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of net loss recognized on derivative.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DerivativeNetLossOnDerivative</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_LifeInsuranceContractsFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of weighted average cost of capital.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CashSurrenderValueOfLifeInsurance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6812-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashSurrenderValueOfLifeInsurance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeFairValueOfDerivativeLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, before effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121570589&amp;loc=SL51823488-111719<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624163-113959<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13777-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsNonrecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_FairValueMeasurementsNonrecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_HedgingDesignationAxis=us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_HedgingDesignationAxis=us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301756535864">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Aug. 01, 2021</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 592,114<span></span>
</td>
<td class="nump">$ 464,392<span></span>
</td>
<td class="nump">$ 332,447<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="nump">$ 107,355<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="nump">7,409<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_BusinessCombinationConsiderationTransferredContingentEarnOut', window );">Estimated fair value of contingent earn-out payments</a></td>
<td class="nump">12,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total consideration transferred</a></td>
<td class="nump">137,664<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">13,554<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Billed and unbilled accounts receivable</a></td>
<td class="nump">43,248<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther', window );">Other current assets</a></td>
<td class="nump">3,422<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="nump">3,886<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">55,076<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Identifiable intangible assets</a></td>
<td class="nump">57,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use asset</a></td>
<td class="nump">8,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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(14,489)<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings', window );">Billings in excess of costs and estimated earnings</a></td>
<td class="num">(15,199)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt', window );">Current maturities of long-term debt</a></td>
<td class="num">(1,860)<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent', window );">Current operating lease liabilities</a></td>
<td class="num">(1,115)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther', window );">Accrued expenses and other current liabilities</a></td>
<td class="num">(6,889)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent', window );">Long-term operating lease liabilities</a></td>
<td class="num">(785)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther', window );">Other long-term liabilities</a></td>
<td class="num">(7,882)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Total assets acquired and liabilities assumed</a></td>
<td class="nump">$ 137,664<span></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_BusinessCombinationConsiderationTransferredContingentEarnOut">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of contingent earn-out payment under business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationConsiderationTransferredContingentEarnOut</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_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of working capital settlement under business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's lease liability current underlying liability under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset</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_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationConsiderationTransferredAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6405-128476<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=123455525&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=123455525&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758881544">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Acquired Intangible Assets (Details) - Amteck<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Aug. 01, 2021 </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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 57,700<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">1 year 6 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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 7,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Estimated Useful Life</a></td>
<td class="text">23 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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 12,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">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="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems', window );"><strong>Acquired Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Estimated Fair Value</a></td>
<td class="nump">$ 37,300<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_AcquiredFiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=123455525&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753423240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Contingent Earn-out Obligation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">5 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Aug. 01, 2021</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,073,636<span></span>
</td>
<td class="nump">$ 2,856,659<span></span>
</td>
<td class="nump">$ 2,615,277<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 34,200<span></span>
</td>
<td class="nump">34,200<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">61,700<span></span>
</td>
<td class="nump">$ 61,700<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_NumberOfMilestoneEarnings', window );">Number of milestones</a></td>
<td class="text">four<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 83,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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod', window );">Contingent earn-out period</a></td>
<td class="text">53 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck | 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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Contingent earn-out estimated milestone payment, minimum</a></td>
<td class="nump">$ 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">14.80%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck | Minimum | Measurement Input, Inception Discount Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">14.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck | 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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Contingent earn-out estimated milestone payment, maximum</a></td>
<td class="nump">$ 11,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">15.20%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember', window );">Amteck | Maximum | Measurement Input, Inception Discount Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_CashFlowDiscountRate', window );">Cash flow discount rate</a></td>
<td class="nump">18.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business Combination Contingent Consideration Arrangements Earn Out Period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of probable cash flows discount rate.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_fix_NumberOfMilestoneEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of milestones.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_NumberOfMilestoneEarnings</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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>65
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755596088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Other Acquisitions (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 01, 2021</div></th>
<th class="th"><div>Apr. 01, 2020</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_MepHoldingCo.IncMember', window );">MEP Holdings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="nump">$ 57.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Purchase price paid in cash</a></td>
<td class="nump">45.2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Promissory note payable</a></td>
<td class="nump">7.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_MechanicalContractorKentuckyMember', window );">Mechanical Contractor Kentucky</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="nump">21.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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_MechanicalContractorIndianaMember', window );">Mechanical Contractor Indiana</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="nump">$ 4.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_IveyMechanicalCompanyLlcMember', window );">Ivey</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 78.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Purchase price paid in cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64.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>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Promissory note payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredOther1', window );">Other amount payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_TasEnergyIncMember', window );">TAS Energy</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 169.5<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill', window );">Purchase price allocated to goodwill and identifiable intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">126.2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Purchase price paid in cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">105.9<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">40.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Promissory note payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ContingentEarnOutObligationToAcquireBusiness', window );">Contingent earn-out obligation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9.1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_TECIndustrialConstructionAndMaintenanceMember', window );">TEC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 88.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Purchase price paid in cash</a></td>
<td class="text">&#160;<span></span>
</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">73.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Promissory note payable</a></td>
<td class="text">&#160;<span></span>
</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">7.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ContingentEarnOutObligationToAcquireBusiness', window );">Contingent earn-out obligation</a></td>
<td class="text">&#160;<span></span>
</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">$ 7.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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_ElectricalContractorNorthCarolinaMember', window );">Electrical 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 41.6<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=fix_MechanicalContractorUtahMember', window );">Mechanical Contractor 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18.1<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of working capital settlement under business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, including goodwill, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill</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_ContingentEarnOutObligationToAcquireBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of contingent earn-out obligation included in purchase price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ContingentEarnOutObligationToAcquireBusiness</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6405-128476<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationConsiderationTransferredOther1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tangible or intangible assets, including a business or subsidiary of the acquirer transferred by the entity to the former owners of the acquiree. Excludes cash.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferredOther1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_MepHoldingCo.IncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MepHoldingCo.IncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MechanicalContractorKentuckyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalContractorKentuckyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MechanicalContractorIndianaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalContractorIndianaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_IveyMechanicalCompanyLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IveyMechanicalCompanyLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TasEnergyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TasEnergyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TECIndustrialConstructionAndMaintenanceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TECIndustrialConstructionAndMaintenanceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ElectricalContractorNorthCarolinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ElectricalContractorNorthCarolinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MechanicalContractorUtahMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalContractorUtahMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755293240">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at beginning of year</a></td>
<td class="nump">$ 464,392<span></span>
</td>
<td class="nump">$ 332,447<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">127,722<span></span>
</td>
<td class="nump">131,945<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at end of period</a></td>
<td class="nump">592,114<span></span>
</td>
<td class="nump">464,392<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fix_MechanicalServicesIndustryMember', window );">Mechanical Services 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="top.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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at beginning of year</a></td>
<td class="nump">307,448<span></span>
</td>
<td class="nump">234,660<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">52,771<span></span>
</td>
<td class="nump">72,788<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Impact of segment reorganization</a></td>
<td class="nump">1,101<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at end of period</a></td>
<td class="nump">361,320<span></span>
</td>
<td class="nump">307,448<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillImpairedAccumulatedImpairmentLoss', window );">Accumulated impairment charges</a></td>
<td class="nump">116,600<span></span>
</td>
<td class="nump">116,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="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=fix_ElectricalServicesIndustryMember', window );">Electrical Services Industry</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="top.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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at beginning of year</a></td>
<td class="nump">156,944<span></span>
</td>
<td class="nump">97,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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisitions and purchase price adjustments (See Note 5)</a></td>
<td class="nump">74,951<span></span>
</td>
<td class="nump">59,157<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Impact of segment reorganization</a></td>
<td class="num">(1,101)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at end of period</a></td>
<td class="nump">$ 230,794<span></span>
</td>
<td class="nump">$ 156,944<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_GoodwillImpairedAccumulatedImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated impairment loss for an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairedAccumulatedImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_GoodwillOtherIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillOtherIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_MechanicalServicesIndustryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalServicesIndustryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ElectricalServicesIndustryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ElectricalServicesIndustryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753380168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Book Value</a></td>
<td class="nump">$ 477,667<span></span>
</td>
<td class="nump">$ 366,987<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(172,886)<span></span>
</td>
<td class="num">(135,180)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2022</a></td>
<td class="nump">46,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2023</a></td>
<td class="nump">34,532<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2024</a></td>
<td class="nump">32,343<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2025</a></td>
<td class="nump">30,156<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2026</a></td>
<td class="nump">29,312<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">131,933<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 304,781<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">7 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Book Value</a></td>
<td class="nump">$ 330,572<span></span>
</td>
<td class="nump">255,692<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">$ (130,098)<span></span>
</td>
<td class="num">(103,919)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships | 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">7 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OrderOrProductionBacklogMember', window );">Backlog</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">1 year 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Book Value</a></td>
<td class="nump">$ 32,300<span></span>
</td>
<td class="nump">19,800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">$ (20,091)<span></span>
</td>
<td class="num">(12,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OrderOrProductionBacklogMember', window );">Backlog | 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">1 year 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade Name</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">19 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Book Value</a></td>
<td class="nump">$ 114,795<span></span>
</td>
<td class="nump">91,495<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">$ (22,697)<span></span>
</td>
<td class="num">$ (18,661)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade Name | 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">19 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember', window );">Customer Relationships Noncompete Agreements and Tradenames | 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember', window );">Customer Relationships Noncompete Agreements and Tradenames | 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Identifiable Intangible Assets, Net</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated Useful Lives in Years</a></td>
<td class="text">25 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OrderOrProductionBacklogMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>68
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301762966648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Identifiable Intangible Assets, Net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetImpairmentChargesAbstract', window );"><strong>Asset Impairment Charges [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="top.Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment charges</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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of identifiable intangible assets</a></td>
<td class="nump">40,505<span></span>
</td>
<td class="nump">32,698<span></span>
</td>
<td class="nump">27,082<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 592,114<span></span>
</td>
<td class="nump">$ 464,392<span></span>
</td>
<td class="nump">$ 332,447<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_LegalEntityAxis=fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember', window );">Walker</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="top.Show.showAR( this, 'defref_us-gaap_AssetImpairmentChargesAbstract', window );"><strong>Asset Impairment Charges [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_PercentageOfFairValuesInExcessOfCarryingValue', window );">Fair values in excess of carrying value (as a percent)</a></td>
<td class="nump">32.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 96,800<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_PercentageOfFairValuesInExcessOfCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of fair value in excess of carrying value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PercentageOfFairValuesInExcessOfCarryingValue</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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AssetImpairmentChargesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentChargesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13777-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dei_LegalEntityAxis=fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301754775688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 293,379<span></span>
</td>
<td class="nump">$ 264,408<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less-Accumulated depreciation</a></td>
<td class="num">(164,825)<span></span>
</td>
<td class="num">(147,202)<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">128,554<span></span>
</td>
<td class="nump">117,206<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation expense</a></td>
<td class="nump">28,400<span></span>
</td>
<td class="nump">27,900<span></span>
</td>
<td class="nump">$ 24,500<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember', window );">Land</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">6,792<span></span>
</td>
<td class="nump">7,167<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_TransportationEquipmentMember', window );">Transportation equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 132,792<span></span>
</td>
<td class="nump">113,802<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_TransportationEquipmentMember', window );">Transportation equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_TransportationEquipmentMember', window );">Transportation equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 48,000<span></span>
</td>
<td class="nump">43,386<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">20 years<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_ComputerAndTelephoneEquipmentMember', window );">Computer and telephone equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 23,065<span></span>
</td>
<td class="nump">23,215<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_ComputerAndTelephoneEquipmentMember', window );">Computer and telephone equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_ComputerAndTelephoneEquipmentMember', window );">Computer and telephone equipment | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_BuildingAndLeaseholdImprovementsMember', window );">Buildings and leasehold improvements</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 74,981<span></span>
</td>
<td class="nump">69,683<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_BuildingAndLeaseholdImprovementsMember', window );">Buildings and leasehold improvements | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_BuildingAndLeaseholdImprovementsMember', window );">Buildings and leasehold improvements | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">40 years<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and fixtures</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 6,081<span></span>
</td>
<td class="nump">5,861<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and fixtures | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and fixtures | 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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">17 years<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in progress</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property and equipment</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 1,668<span></span>
</td>
<td class="nump">$ 1,294<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_TransportationEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_TransportationEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_ComputerAndTelephoneEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_ComputerAndTelephoneEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_BuildingAndLeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=fix_BuildingAndLeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755642312">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Detail of Other Current Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrentAbstract', window );"><strong>Other 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="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent', window );">Accrued warranty costs</a></td>
<td class="nump">$ 8,969<span></span>
</td>
<td class="nump">$ 8,914<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current lease liability</a></td>
<td class="nump">19,050<span></span>
</td>
<td class="nump">16,586<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease liability</a></td>
<td class="nump">126,751<span></span>
</td>
<td class="nump">97,162<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="top.Show.showAR( this, 'defref_fix_AccruedJobLosses', window );">Accrued job losses</a></td>
<td class="nump">8,962<span></span>
</td>
<td class="nump">2,151<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent', window );">Accrued sales and use tax</a></td>
<td class="nump">3,861<span></span>
</td>
<td class="nump">3,731<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenueCurrent', window );">Deferred revenue</a></td>
<td class="nump">13,734<span></span>
</td>
<td class="nump">4,559<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="top.Show.showAR( this, 'defref_fix_LiabilitiesDueToFormerOwnersCurrent', window );">Liabilities due to former owners</a></td>
<td class="nump">27,613<span></span>
</td>
<td class="nump">10,280<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherSundryLiabilitiesCurrent', window );">Other current liabilities</a></td>
<td class="nump">37,211<span></span>
</td>
<td class="nump">45,271<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrent', window );">Total other current liabilities</a></td>
<td class="nump">$ 119,400<span></span>
</td>
<td class="nump">$ 91,492<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_AccruedJobLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the accrual for expenses related to job losses.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AccruedJobLosses</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_LiabilitiesDueToFormerOwnersCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the carrying amount as of the balance sheet date of liabilities due to former owners. For classified balance sheets, represents the current portion of such liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LiabilitiesDueToFormerOwnersCurrent</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_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6911-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherSundryLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Obligations not otherwise itemized or categorized in the footnotes to the financial statements that are due within one year or operating cycle, if longer, from the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99376301&amp;loc=d3e1243-112600<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherSundryLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_ProductWarrantyAccrualClassifiedCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12524-110249<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 25<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123377177&amp;loc=d3e11281-110244<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualClassifiedCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred through that date and payable for statutory sales and use taxes, including value added tax.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.15(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758089224">
<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>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Finance lease liabilities (See Note 10)</a></td>
<td class="nump">$ 266<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Total principal amount</a></td>
<td class="nump">388,220<span></span>
</td>
<td class="nump">$ 236,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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet', window );">Less-unamortized debt issuance costs</a></td>
<td class="num">(190)<span></span>
</td>
<td class="num">(267)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Total debt, net of unamortized debt issuance costs</a></td>
<td class="nump">388,030<span></span>
</td>
<td class="nump">235,733<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Less-current portion</a></td>
<td class="nump">2,788<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Total long-term portion of debt, net</a></td>
<td class="nump">385,242<span></span>
</td>
<td class="nump">235,733<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility</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="top.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="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Total principal amount</a></td>
<td class="nump">220,000<span></span>
</td>
<td class="nump">70,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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=fix_TermLoanMember', window );">Term loan</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="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Total principal amount</a></td>
<td class="nump">120,000<span></span>
</td>
<td class="nump">135,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="top.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="top.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="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="nump">$ 47,954<span></span>
</td>
<td class="nump">$ 31,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unamortized debt discount (premium) and debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69C<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495737-112612<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466204&amp;loc=SL6031897-161870<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495340-112611<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69B<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495735-112612<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtLongtermAndShorttermCombinedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the aggregate of total long-term debt, including current maturities and short-term debt.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtLongtermAndShorttermCombinedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466204&amp;loc=SL6031897-161870<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69C<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495737-112612<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69B<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495735-112612<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495340-112611<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_NotesAndLoansPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_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_DebtInstrumentAxis=fix_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>72
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759951688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt Obligations - Future Payments (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths', window );">2022</a></td>
<td class="nump">$ 2,788<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo', window );">2023</a></td>
<td class="nump">27,981<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree', window );">2024</a></td>
<td class="nump">35,352<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour', window );">2025</a></td>
<td class="nump">322,099<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="top.Show.showAR( this, 'defref_us-gaap_DebtAndCapitalLeaseObligations', window );">Total debt</a></td>
<td class="nump">388,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="top.Show.showAR( this, 'defref_us-gaap_InterestExpenseAbstract', window );"><strong>Interest 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpenseRelatedParty', window );">Interest expense on notes to former owners</a></td>
<td class="nump">1,052<span></span>
</td>
<td class="nump">$ 1,354<span></span>
</td>
<td class="nump">$ 1,531<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts', window );">Interest expense on borrowings and unused commitment fees</a></td>
<td class="nump">3,371<span></span>
</td>
<td class="nump">5,319<span></span>
</td>
<td class="nump">6,887<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="top.Show.showAR( this, 'defref_fix_InterestExpenseOnInterestRateSwaps', window );">Interest expense on interest rate swaps</a></td>
<td class="nump">499<span></span>
</td>
<td class="nump">338<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseInterestExpense', window );">Interest expense on finance leases</a></td>
<td class="nump">57<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="top.Show.showAR( this, 'defref_fix_LetterOfCreditFeesAmount', window );">Letter of credit fees</a></td>
<td class="nump">679<span></span>
</td>
<td class="nump">830<span></span>
</td>
<td class="nump">512<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCostsAndDiscounts', window );">Amortization of debt financing costs</a></td>
<td class="nump">538<span></span>
</td>
<td class="nump">544<span></span>
</td>
<td class="nump">387<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Total</a></td>
<td class="nump">$ 6,196<span></span>
</td>
<td class="nump">$ 8,385<span></span>
</td>
<td class="nump">$ 9,317<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_InterestExpenseOnInterestRateSwaps">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of interest expense on interest rate swaps.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_InterestExpenseOnInterestRateSwaps</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_LetterOfCreditFeesAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of fees associated with the letter of credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LetterOfCreditFeesAmount</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_AmortizationOfFinancingCostsAndDiscounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to debt discount (premium) and debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69E<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495743-112612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495355-112611<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69F<br> -URI http://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495745-112612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfFinancingCostsAndDiscounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtAndCapitalLeaseObligations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term and long-term debt and lease obligation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.13,16)<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.16)<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtAndCapitalLeaseObligations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DebtRelatedCommitmentFeesAndDebtIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the charge against earnings during the period for commitment fees and debt issuance expenses.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.8)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FinanceLeaseInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of interest expense on finance lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpenseRelatedParty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of interest expense incurred on a debt or other obligation to related party.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseRelatedParty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LongTermDebtByMaturityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301747668024">
<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"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 20, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th"><div>Dec. 19, 2019</div></th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfSeniorDebt', window );">Payments on term loan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,000<span></span>
</td>
<td class="nump">$ 15,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfFinancingCosts', window );">Financing and professional cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,405<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">388,220<span></span>
</td>
<td class="nump">236,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract', window );"><strong>Reconciliation of Credit Facility Adjusted EBITDA to net income</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="top.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">143,348<span></span>
</td>
<td class="nump">150,139<span></span>
</td>
<td class="nump">114,324<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">46,926<span></span>
</td>
<td class="nump">41,401<span></span>
</td>
<td class="nump">37,418<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and amortization expense</a></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">(28,400)<span></span>
</td>
<td class="num">(27,900)<span></span>
</td>
<td class="num">(24,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></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,593<span></span>
</td>
<td class="nump">6,934<span></span>
</td>
<td class="nump">$ 5,878<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantFixedChargeCoverageRatio', window );">Fixed charge coverage ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.00<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo', window );">2023</a></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">$ 27,981<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree', window );">2024</a></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">35,352<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 450,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Outstanding borrowings</a></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">220,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="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">220,000<span></span>
</td>
<td class="nump">70,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="top.Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of credit amount outstanding</a></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">53,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Credit available</a></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">176,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition', window );">Book value of assets pledged as collateral</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 98,900<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters', window );">Number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA | item</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentInterestRateOptionsNumber', window );">Number of interest rate options | item</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantLeverageRatio', window );">Leverage ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.2<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantFixedChargeCoverageRatio', window );">Fixed charge coverage ratio</a></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">42.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters', window );">Number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for calculation of fixed charge coverage ratio | item</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins', window );">Period of Credit Facility Adjusted EBITDA for determining additional margins</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">12 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Weighted average interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.40%<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Through maturity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantLeverageRatio', window );">Leverage ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_LetterOfCreditFeesPercentage', window );">Letter of credit fees (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.20%<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_LetterOfCreditFeesPercentage', window );">Letter of credit fees (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_LetterOfCreditFeesPercentage', window );">Letter of credit fees (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.75%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.30%<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_LetterOfCreditFeesPercentage', window );">Letter of credit fees (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Commitment fees payable on unused portion of the facility (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.35%<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantFixedChargeCoverageRatio', window );">Fixed charge coverage ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Minimum | Covenant Requirement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio', window );">Net leverage ratio used as basis for other restrictions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentFinancialCovenantsAbstract', window );"><strong>Principal financial covenants</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction', window );">Permitted amount of acquisitions per transaction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions', window );">Aggregate purchase price of current acquisition and acquisitions in the preceding 12 month period for determining permitted amount of acquisition per transaction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,000<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Base rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Base rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Base rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Eurodollar 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=fix_AmendedSeniorRevolvingCreditFacilityMember', window );">Amended 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 570,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_LineOfCreditBorrowingCapacityAccordionOption', window );">Line of credit borrowing capacity accordion option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfSeniorDebt', window );">Payments on term loan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfFinancingCosts', window );">Financing and professional cost</a></td>
<td class="nump">$ 1,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=fix_TermLoanMember', window );">Term loan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount', window );">Repayment in terms of percentage of original aggregate principal amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.75%<span></span>
</td>
<td class="nump">1.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_PaymentsOfFinancingCostsTermLoan', window );">Payments of financing costs term loan</a></td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtLongtermAndShorttermCombinedAmount', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 120,000<span></span>
</td>
<td class="nump">135,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Weighted average interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.40%<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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_fix_CumulativeNumberOfCompaniesAcquired', window );">Cumulative number of companies acquired | item</a></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<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 47,954<span></span>
</td>
<td class="nump">$ 31,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | MEP Holdings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Ivey</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Walker</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Amteck</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Immaterial acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansPayable', window );">Outstanding balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Minimum | Immaterial acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.30%<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LoansPayableMember', window );">Promissory note | Maximum | Immaterial acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_LetterOfCreditMember', window );">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 160,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=us-gaap_NotesPayableOtherPayablesMember', window );">Outstanding notes | Immaterial acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NumberOfBusinessesAcquired', window );">Number of acquisitions | item</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateFederalFundsRateMember', window );">Federal Funds Rate | Revolving credit facility | Base rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_MarketRatesAbstract', window );"><strong>Market rates relating to interest options</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentMarketRate', window );">Market rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.57%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_fix_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember', window );">Wells Fargo Bank, N.A. Prime Rate | Revolving credit facility | Base rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_MarketRatesAbstract', window );"><strong>Market rates relating to interest options</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentMarketRate', window );">Market rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.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="top.Show.showAR( this, 'defref_fix_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateOneMonthLIBORMember', window );">One-month LIBOR | Revolving credit facility | Base rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_MarketRatesAbstract', window );"><strong>Market rates relating to interest options</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DebtInstrumentMarketRate', window );">Market rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.10%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Additional per annum interest margin (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_fix_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateOneMonthLIBORMember', window );">One-month LIBOR | Revolving credit facility | Eurodollar rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_MarketRatesAbstract', window );"><strong>Market rates relating to interest options</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentDescriptionOfVariableRateBasis', window );">Variable rate basis</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">One-month LIBOR<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentMarketRate', window );">Market rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.10%<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateSixMonthLIBORMember', window );">Six-month LIBOR | Revolving credit facility | Eurodollar rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_MarketRatesAbstract', window );"><strong>Market rates relating to interest options</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentDescriptionOfVariableRateBasis', window );">Variable rate basis</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Six-month LIBOR<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="top.Show.showAR( this, 'defref_fix_DebtInstrumentMarketRate', window );">Market rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.34%<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_CumulativeNumberOfCompaniesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative number of companies acquired by the entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CumulativeNumberOfCompaniesAcquired</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_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for the calculation of the fixed charge coverage ratio.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters</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_DebtInstrumentCovenantFixedChargeCoverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the ratio of consolidated adjusted earnings before, interest, taxes, depreciation and amortization, less non-financed capital expenditures, tax provision, dividends and amounts used to repurchase stock to the sum of interest expense and scheduled principal payments of indebtedness required to be maintained under the financial covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantFixedChargeCoverageRatio</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:pureItemType</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_DebtInstrumentCovenantLeverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the ratio of consolidated total debt to consolidated adjusted earnings before, interest, taxes, depreciation and amortization required to be maintained under the financial covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantLeverageRatio</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:pureItemType</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_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters</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_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the aggregate purchase price of current acquisition and acquisitions in the preceding twelve month period used for determining the permitted amount of acquisition per transaction under the financial covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions</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_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the net leverage ratio as defined in the financial covenants which is used as a basis to determine other restrictions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio</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:pureItemType</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_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of acquisition per transaction permitted under the financial covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction</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_DebtInstrumentFinancialCovenantsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentFinancialCovenantsAbstract</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_DebtInstrumentInterestRateOptionsNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of interest rate options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentInterestRateOptionsNumber</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_DebtInstrumentMarketRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the market rate relating to interest options under the Facility.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentMarketRate</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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period of Credit Facility Adjusted EBITDA for determining additional margins.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins</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_LetterOfCreditFeesPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the fees for the letter of credit facility, expressed as a percent based on the ratio of consolidated total indebtedness to credit facility adjusted EBITDA, as defined in the credit agreement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LetterOfCreditFeesPercentage</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_fix_LineOfCreditBorrowingCapacityAccordionOption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_fix_MarketRatesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_MarketRatesAbstract</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_PaymentsOfFinancingCostsTermLoan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Payments Of Financing Costs Term Loan</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PaymentsOfFinancingCostsTermLoan</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_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>n/a</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract</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_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents repayment in terms of percentage of original aggregate principal amount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount</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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtInstrumentDescriptionOfVariableRateBasis">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Description of reference rate used for variable rate of debt instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentDescriptionOfVariableRateBasis</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466204&amp;loc=SL6036836-161870<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28551-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429444&amp;loc=SL124452920-239629<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtLongtermAndShorttermCombinedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the aggregate of total long-term debt, including current maturities and short-term debt.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtLongtermAndShorttermCombinedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123465755&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_NumberOfBusinessesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of businesses acquired by the entity during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfBusinessesAcquired</td>
</tr>
<tr>
<td style="padding-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_PaymentsOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for loan and debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The carrying amount, as of the date of the latest financial statement presented, of all assets that are pledged as collateral for the payment of the related debt obligation primarily arising from secured borrowings, repurchase agreements or other current or potential obligations, where the secured party does not have the right by contract or custom to sell or re-pledge the collateral and therefore are not reclassified and separately reported in the statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (b)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=109249958&amp;loc=SL6224234-111729<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3000-108585<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123454820&amp;loc=SL4569616-111683<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 29: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 31: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4J<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591551-111686<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4K<br> -URI http://asc.fasb.org/extlink&amp;oid=120409616&amp;loc=SL4591552-111686<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RepaymentsOfSeniorDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for a long-term debt where the holder has highest claim on the entity's asset in case of bankruptcy or liquidation during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfSeniorDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_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_fix_DebtCovenantEffectiveDateAxis=fix_ThroughMaturityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DebtCovenantEffectiveDateAxis=fix_ThroughMaturityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementScenarioAxis=fix_ScenarioCovenantRequirementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementScenarioAxis=fix_ScenarioCovenantRequirementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VariableRateAxis=fix_DebtInstrumentVariableRateBaseRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=fix_DebtInstrumentVariableRateBaseRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_EurodollarMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EurodollarMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_AmendedSeniorRevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmendedSeniorRevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_SubordinateDebtAndPromissoryNoteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_LoansPayableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_LoansPayableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_MepHoldingCo.IncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MepHoldingCo.IncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_IveyMechanicalCompanyLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IveyMechanicalCompanyLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_us-gaap_DebtInstrumentAxis=us-gaap_NotesPayableOtherPayablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_NotesPayableOtherPayablesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateFederalFundsRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateFederalFundsRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateOneMonthLIBORMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateOneMonthLIBORMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateSixMonthLIBORMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_DebtInstrumentVariableRateSecondaryClassificationAxis=fix_DebtInstrumentVariableRateSixMonthLIBORMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758003864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>Option</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="top.Show.showAR( this, 'defref_us-gaap_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Finance lease liability</a></td>
<td class="nump">$ 266<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList', window );">Finance Lease, Liability, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">us-gaap:OtherLiabilities<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="top.Show.showAR( this, 'defref_fix_VariableLeaseAndShortTermLeaseCost', window );">Variable lease expense and short-term lease expenses</a></td>
<td class="nump">$ 11,900<span></span>
</td>
<td class="nump">$ 7,700<span></span>
</td>
<td class="nump">$ 8,400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate for operating leases</a></td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">4.20%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="nump">$ 34,200<span></span>
</td>
<td class="nump">$ 28,200<span></span>
</td>
<td class="nump">24,800<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term</a></td>
<td class="text">8 years 8 months 12 days<span></span>
</td>
<td class="text">7 years 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRent', window );">Rent paid to related parties</a></td>
<td class="nump">$ 4,900<span></span>
</td>
<td class="nump">$ 4,200<span></span>
</td>
<td class="nump">$ 3,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend', window );">Existence of option to extend</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">&#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="top.Show.showAR( this, 'defref_fix_NumberOfOptionsToRenew', window );">Number of options to renew | Option</a></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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">&#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_NumberOfOptionsToRenew">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of options to renew.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of financial position that includes finance lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918631-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList</td>
</tr>
<tr>
<td style="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_LesseeLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>75
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301760165640">
<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>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">$ 124,756<span></span>
</td>
<td class="nump">$ 94,727<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Other current liabilities</a></td>
<td class="nump">$ 19,050<span></span>
</td>
<td class="nump">$ 16,586<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList', window );">Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]</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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term operating lease liabilities</a></td>
<td class="nump">$ 107,701<span></span>
</td>
<td class="nump">$ 80,576<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total operating lease liabilities</a></td>
<td class="nump">$ 126,751<span></span>
</td>
<td class="nump">$ 97,162<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918631-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>76
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759884728">
<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">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2022</a></td>
<td class="nump">$ 23,729<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2023</a></td>
<td class="nump">21,142<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2024</a></td>
<td class="nump">18,738<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2025</a></td>
<td class="nump">17,642<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2026</a></td>
<td class="nump">14,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">55,161<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total Lease Payments</a></td>
<td class="nump">151,043<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less-Present Value Discount</a></td>
<td class="num">(24,292)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present Value of Lease Liabilities</a></td>
<td class="nump">126,751<span></span>
</td>
<td class="nump">$ 97,162<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Cash paid for amounts included in the measurement of lease liabilities</a></td>
<td class="nump">22,232<span></span>
</td>
<td class="nump">20,443<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 47,621<span></span>
</td>
<td class="nump">$ 27,346<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>77
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753234440">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Provision (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current tax provision-</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="top.Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 31,283<span></span>
</td>
<td class="nump">$ 36,556<span></span>
</td>
<td class="nump">$ 33,281<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State and Puerto Rico</a></td>
<td class="nump">8,741<span></span>
</td>
<td class="nump">12,798<span></span>
</td>
<td class="nump">8,388<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Total current</a></td>
<td class="nump">40,024<span></span>
</td>
<td class="nump">49,354<span></span>
</td>
<td class="nump">41,669<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred tax provision (benefit)-</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="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">6,197<span></span>
</td>
<td class="num">(5,483)<span></span>
</td>
<td class="num">(3,750)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State and Puerto Rico</a></td>
<td class="nump">705<span></span>
</td>
<td class="num">(2,470)<span></span>
</td>
<td class="num">(501)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit', window );">Total deferred</a></td>
<td class="nump">6,902<span></span>
</td>
<td class="num">(7,953)<span></span>
</td>
<td class="num">(4,251)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 46,926<span></span>
</td>
<td class="nump">$ 41,401<span></span>
</td>
<td class="nump">$ 37,418<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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state, local, and federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753352968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="4">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rates on continuing operations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24.70%<span></span>
</td>
<td class="nump">21.60%<span></span>
</td>
<td class="nump">24.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Federal statutory income tax rate (as a percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income taxes at the federal statutory rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 39,958<span></span>
</td>
<td class="nump">$ 40,223<span></span>
</td>
<td class="nump">$ 31,866<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract', window );"><strong>Increases (decreases) resulting from-</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes', window );">Net state income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,340<span></span>
</td>
<td class="nump">8,406<span></span>
</td>
<td class="nump">6,644<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Valuation allowances</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(39)<span></span>
</td>
<td class="num">(254)<span></span>
</td>
<td class="num">(279)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxContingencies', window );">Net unrecognized tax benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">640<span></span>
</td>
<td class="nump">18,557<span></span>
</td>
<td class="nump">7,338<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpense', window );">Nondeductible expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,381<span></span>
</td>
<td class="nump">2,470<span></span>
</td>
<td class="nump">2,180<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">R&amp;D tax credits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (4,600)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(26,133)<span></span>
</td>
<td class="num">(4,569)<span></span>
</td>
<td class="num">$ (2,700)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_IncomeTaxReconciliationSection179dDeduction', window );">179D deduction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,207)<span></span>
</td>
<td class="num">(1,062)<span></span>
</td>
<td class="num">(5,126)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount', window );">Stock-based compensation deductions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,210)<span></span>
</td>
<td class="num">(426)<span></span>
</td>
<td class="num">(714)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationOtherReconcilingItems', window );">Other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63<span></span>
</td>
<td class="num">(380)<span></span>
</td>
<td class="nump">78<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 46,926<span></span>
</td>
<td class="nump">$ 41,401<span></span>
</td>
<td class="nump">37,418<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="top.Show.showAR( this, 'defref_fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies', window );">179D deduction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,200)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementScenarioAxis=srt_ScenarioForecastMember', window );">Forecast</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract', window );"><strong>Increases (decreases) resulting from-</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_InterestIncomeOnIncomeTaxRefundsNet', window );">Interest on income tax refund</a></td>
<td class="nump">$ 1,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_IncomeTaxReconciliationSection179dDeduction">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Income tax reconciliation section 179D deduction.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncomeTaxReconciliationSection179dDeduction</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_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Income tax reconciliation section 179D deduction, net of tax contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies</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_InterestIncomeOnIncomeTaxRefundsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net amount of interest income (expense) on income tax refunds.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_InterestIncomeOnIncomeTaxRefundsNet</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_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120384911&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationNondeductibleExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationOtherReconcilingItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationOtherReconcilingItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationTaxContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in income tax contingencies. Including, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StatementScenarioAxis=srt_ScenarioForecastMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementScenarioAxis=srt_ScenarioForecastMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>79
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758982664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Provision Changes, Examination (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="4">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 31, 2020</div></th>
<th class="th"><div>Sep. 30, 2020</div></th>
<th class="th"><div>Sep. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">R&amp;D tax credits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 26,133<span></span>
</td>
<td class="nump">$ 4,569<span></span>
</td>
<td class="nump">$ 2,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions based on tax positions related to prior years</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 489<span></span>
</td>
<td class="nump">26,858<span></span>
</td>
<td class="nump">7,473<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="top.Show.showAR( this, 'defref_fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies', window );">179D deduction</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Reduced provision for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">8,301<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 46,926<span></span>
</td>
<td class="nump">$ 41,401<span></span>
</td>
<td class="nump">$ 37,418<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember', window );">Internal Revenue Service (IRS)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority', window );">Refund claims allowed in Income tax examination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=fix_TaxYears2016To2018Member', window );">Total Tax Years 2016-2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions based on tax positions related to prior years</a></td>
<td class="nump">$ 28,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember', window );">R&amp;D Tax Credit and 179D Deduction | Tax Year 2016</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">9,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember', window );">R&amp;D Tax Credit and 179D Deduction | Tax Year 2017</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">9,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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember', window );">R&amp;D Tax Credit and 179D Deduction | Tax Year 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">11,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember', window );">R&amp;D Tax Credit and 179D Deduction | Total Tax Years 2016-2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationLineItems', window );"><strong>Income Taxes</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 31,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Income tax reconciliation section 179D deduction, net of tax contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies</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_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of the additional liability or refund received or expected based on a final settlement with a taxing authority.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_IncomeTaxExaminationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExaminationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TaxPeriodAxis=fix_TaxYears2016To2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=fix_TaxYears2016To2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAxis=fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TaxPeriodAxis=us-gaap_TaxYear2016Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=us-gaap_TaxYear2016Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TaxPeriodAxis=us-gaap_TaxYear2017Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=us-gaap_TaxYear2017Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TaxPeriodAxis=us-gaap_TaxYear2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=us-gaap_TaxYear2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301753123112">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Deferred Tax Assets (Liabilities) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ComponentsOfDeferredTaxAssetsAbstract', window );"><strong>Deferred tax 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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts', window );">Accounts receivable and allowance for doubtful accounts</a></td>
<td class="nump">$ 1,878<span></span>
</td>
<td class="nump">$ 2,186<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation</a></td>
<td class="nump">3,392<span></span>
</td>
<td class="nump">2,791<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals', window );">Accrued liabilities and expenses</a></td>
<td class="nump">36,255<span></span>
</td>
<td class="nump">39,761<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="top.Show.showAR( this, 'defref_fix_DeferredTaxAssetsLeaseLiability', window );">Lease liabilities</a></td>
<td class="nump">27,944<span></span>
</td>
<td class="nump">22,768<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="nump">10,379<span></span>
</td>
<td class="nump">12,127<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible assets</a></td>
<td class="nump">3,851<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other</a></td>
<td class="nump">758<span></span>
</td>
<td class="nump">627<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Subtotal</a></td>
<td class="nump">84,457<span></span>
</td>
<td class="nump">80,260<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowances</a></td>
<td class="num">(475)<span></span>
</td>
<td class="num">(514)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Total deferred tax assets</a></td>
<td class="nump">83,982<span></span>
</td>
<td class="nump">79,746<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="num">(15,534)<span></span>
</td>
<td class="num">(13,877)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred tax liabilities</a></td>
<td class="nump">1,745<span></span>
</td>
<td class="nump">1,339<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesLeasingArrangements', window );">Lease right-of-use asset</a></td>
<td class="num">(27,905)<span></span>
</td>
<td class="num">(22,715)<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="top.Show.showAR( this, 'defref_fix_DeferredTaxLiabilitiesLongTermContracts', window );">Long-term contracts</a></td>
<td class="num">(964)<span></span>
</td>
<td class="num">(609)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(242)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill', window );">Goodwill</a></td>
<td class="num">(17,321)<span></span>
</td>
<td class="num">(11,615)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Other</a></td>
<td class="num">(1,098)<span></span>
</td>
<td class="num">(2,626)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Total deferred tax liabilities</a></td>
<td class="num">(62,822)<span></span>
</td>
<td class="num">(51,684)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsLiabilitiesNet', window );">Net deferred tax assets</a></td>
<td class="nump">21,160<span></span>
</td>
<td class="nump">28,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="top.Show.showAR( this, 'defref_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract', window );"><strong>Deferred income tax 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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="nump">$ 22,905<span></span>
</td>
<td class="nump">$ 29,401<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_DeferredTaxAssetsLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from lease liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredTaxAssetsLeaseLiability</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_DeferredTaxLiabilitiesLongTermContracts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to long-term contracts.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredTaxLiabilitiesLongTermContracts</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_ComponentsOfDeferredTaxAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComponentsOfDeferredTaxAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(15)(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 740<br> -Section 25<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=123403335&amp;loc=d3e9972-128506<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 740<br> -Section 25<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=123403335&amp;loc=d3e9979-128506<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DeferredTaxLiabilitiesLeasingArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from leasing arrangements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesLeasingArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759000728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Loss Carryforwards and Other (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2020</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Mar. 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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating loss carryforwards</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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Federal deferred tax assets net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal', window );">State deferred tax assets net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">83,982<span></span>
</td>
<td class="nump">$ 79,746<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties</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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at beginning of year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,756<span></span>
</td>
<td class="nump">10,199<span></span>
</td>
<td class="nump">$ 2,966<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Additions based on tax positions related to current year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">207<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions based on tax positions related to prior years</a></td>
<td class="nump">$ 7,300<span></span>
</td>
<td class="nump">489<span></span>
</td>
<td class="nump">26,858<span></span>
</td>
<td class="nump">7,473<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions for tax positions related to prior years</a></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">(240)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Reductions for settlements with tax authorities</a></td>
<td class="num">(8,300)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(8,301)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at end of year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,452<span></span>
</td>
<td class="nump">28,756<span></span>
</td>
<td class="nump">10,199<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties accrued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Reduced provision for income taxes</a></td>
<td class="nump">$ 8,300<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 8,301<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible', window );">Decrease in unrecognized tax benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28,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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating loss carryforwards</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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwardsLineItems', window );"><strong>Operating loss carryforwards</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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">61,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount', window );">Increase in valuation allowance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease reasonably possible in the next twelve months for the unrecognized tax benefit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLossCarryforwardsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwardsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=SL37586934-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ValuationAllowanceDeferredTaxAssetChangeInAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758885288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Benefit Plans (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </div>
<div>item</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="top.Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Employee Benefit Plans</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="top.Show.showAR( this, 'defref_fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent', window );">Percentage of contributions of covered employees' salaries or wages</a></td>
<td class="nump">2.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Contribution</a></td>
<td class="nump">$ 16.1<span></span>
</td>
<td class="nump">$ 16.3<span></span>
</td>
<td class="nump">$ 14.2<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="top.Show.showAR( this, 'defref_fix_DefinedContributionPlanAmountPayable', window );">Amount payable to plan</a></td>
<td class="nump">$ 0.6<span></span>
</td>
<td class="nump">$ 0.5<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="top.Show.showAR( this, 'defref_fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers', window );">Number of employees who are union members | item</a></td>
<td class="nump">5<span></span>
</td>
<td class="nump">6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MultiemployerPlanPensionInsignificantPlanContribution', window );">Contributions made to multi-employer pension plans</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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments', window );">Period in which certain individuals are entitled to fixed annual payments</a></td>
<td class="text">15 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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments', window );">Maximum age under which certain individuals are entitled to fixed annual payments</a></td>
<td class="text">65 years<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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService', window );">Portion of benefits vesting after ten years of completed service (as a percent)</a></td>
<td class="nump">50.00%<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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested', window );">Period of completed service over which 50% of benefits are vested</a></td>
<td class="text">10 years<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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService', window );">Portion of benefits vesting after fifteen years of completed service (as a percent)</a></td>
<td class="nump">75.00%<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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested', window );">Period of completed service over which 75% of benefits are vested</a></td>
<td class="text">15 years<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="top.Show.showAR( this, 'defref_fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested', window );">Period of service over which benefits are fully vested</a></td>
<td class="text">20 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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent', window );">Unfunded benefit liability</a></td>
<td class="nump">$ 4.0<span></span>
</td>
<td class="nump">$ 4.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the maximum age under which certain individuals are entitled to fixed annual payments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments</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_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period in which certain individuals are entitled to fixed annual payments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments</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_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period of completed service over which 50 percent of benefits are vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested</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_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period of completed service over which 75 percent of benefits are vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested</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_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period of service over which benefits are fully vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested</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_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the portion of benefits vesting after fifteen years of completed service.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService</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_fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the portion of benefits vesting after ten years of completed service.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService</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_fix_DefinedContributionPlanAmountPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount payable to defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedContributionPlanAmountPayable</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_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the maximum percentage of employee gross pay, by the terms of the plan, that the employer may contribute to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent</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_fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of employees who are union members and have participated in the multi-employer pension plans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers</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_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MultiemployerPlanPensionInsignificantPlanContribution">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of contribution received by multiemployer pension plan from all employers participating in multiemployer pension plan determined to be individually insignificant.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 80<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=65877416&amp;loc=SL14450678-114947<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MultiemployerPlanPensionInsignificantPlanContribution</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123453770&amp;loc=d3e1703-114919<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123453770&amp;loc=d3e1731-114919<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=123450688&amp;loc=d3e4179-114921<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301759827016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Other and Bonds (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item</div>
</th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_PerformanceGuaranteeMember', window );">Obligation to perform subcontract work | Pending Litigation</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</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="top.Show.showAR( this, 'defref_fix_LossContingencyLetterOfIntentUnderDisputeNumber', window );">Letter of intent under dispute | item</a></td>
<td class="nump">2<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="top.Show.showAR( this, 'defref_fix_LossContingencyDamagesStatedValue', window );">Damages stated</a></td>
<td class="nump">$ 9.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_PerformanceGuaranteeMember', window );">Obligation to perform subcontract work | Customer | Pending Litigation</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Commitments and Contingencies</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="top.Show.showAR( this, 'defref_us-gaap_LossContingencyDamagesSoughtValue', window );">Damages claimed</a></td>
<td class="nump">$ 12.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember', window );">Surety | Minimum</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="top.Show.showAR( this, 'defref_fix_LossContingencySuretyAbstract', window );"><strong>Surety</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="top.Show.showAR( this, 'defref_fix_PercentageOfBusinessWhichHasRequiredBonds', window );">Percentage of business which has required bonds</a></td>
<td class="nump">15.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_SuretyBondMember', window );">Surety | Maximum</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="top.Show.showAR( this, 'defref_fix_LossContingencySuretyAbstract', window );"><strong>Surety</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="top.Show.showAR( this, 'defref_fix_PercentageOfBusinessWhichHasRequiredBonds', window );">Percentage of business which has required bonds</a></td>
<td class="nump">25.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_LossContingencyDamagesStatedValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The value (monetary amount) of the award the defendant stated in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LossContingencyDamagesStatedValue</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_LossContingencyLetterOfIntentUnderDisputeNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total number of letter of intent executed to perform subcontract work under dispute pertaining to a loss contingency during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LossContingencyLetterOfIntentUnderDisputeNumber</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_LossContingencySuretyAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the percentage of business which has required bonds.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LossContingencyDamagesSoughtValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The value (monetary amount) of the award the plaintiff seeks in the legal matter.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14557-108349<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14435-108349<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyDamagesSoughtValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LossContingenciesByNatureOfContingencyAxis=us-gaap_PerformanceGuaranteeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PerformanceGuaranteeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_LitigationStatusAxis=us-gaap_PendingLitigationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_LitigationStatusAxis=us-gaap_PendingLitigationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CounterpartyNameAxis=fix_CustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CounterpartyNameAxis=fix_CustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>84
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301758850600">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Self-Insurance (Details)<br></strong></div></th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount', window );">Amount of loss fully insured above per-incident deductible amount</a></td>
<td class="nump">$ 150,000,000.0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_SelfInsuranceAggregateLossInsuranceCoveredAmount', window );">Amount of excess loss insurance covered</a></td>
<td class="nump">150,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_WorkersCompensationMember', window );">Workers Compensation</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerIncident', window );">Per incident deductible amount</a></td>
<td class="nump">250,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount', window );">Amount of loss fully insured above per-incident deductible amount</a></td>
<td class="nump">250,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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployersLiabilityMember', window );">Employer's Liability</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerIncident', window );">Per incident deductible amount</a></td>
<td class="nump">250,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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployersLiabilityMember', window );">Employer's Liability | Maximum</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceAggregateLossInsuranceCoveredAmount', window );">Amount of excess loss insurance covered</a></td>
<td class="nump">150,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_GeneralLiabilityMember', window );">General Liability</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerIncident', window );">Per incident deductible amount</a></td>
<td class="nump">250,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount', window );">Amount of loss fully insured above per-incident deductible amount</a></td>
<td class="nump">10,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_GeneralLiabilityMember', window );">General Liability | Maximum</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceAggregateLossInsuranceCoveredAmount', window );">Amount of excess loss insurance covered</a></td>
<td class="nump">150,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_AutoLiabilityMember', window );">Auto Liability</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerIncident', window );">Per incident deductible amount</a></td>
<td class="nump">250,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount', window );">Amount of loss fully insured above per-incident deductible amount</a></td>
<td class="nump">10,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_AutoLiabilityMember', window );">Auto Liability | Maximum</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceAggregateLossInsuranceCoveredAmount', window );">Amount of excess loss insurance covered</a></td>
<td class="nump">$ 150,000,000.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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployeeMedicalMember', window );">Employee Medical</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceNumberOfMedicalPlans', window );">Number of medical plans | item</a></td>
<td class="nump">3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployeeMedicalPlanOneMember', window );">Employee Medical- Plan One</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy', window );">Per person, per policy deductible amount</a></td>
<td class="nump">$ 350,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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployeeMedicalPlanTwoMember', window );">Employee Medical- Plan Two</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy', window );">Per person, per policy deductible amount</a></td>
<td class="nump">350,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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=fix_EmployeeMedicalPlanThreeMember', window );">Employee Medical - Plan Three</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="top.Show.showAR( this, 'defref_us-gaap_LossContingenciesLineItems', window );"><strong>Self-Insurance</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="top.Show.showAR( this, 'defref_fix_SelfInsuranceDeductibleAmountPerIncident', window );">Per incident deductible amount</a></td>
<td class="nump">$ 350,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_SelfInsuranceAggregateLossInsuranceCoveredAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of aggregate excess loss coverage above applicable per-incident deductibles for all lines of risk.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SelfInsuranceAggregateLossInsuranceCoveredAmount</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_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of loss fully insured above per-incident deductible amount under insurance arrangements under various risks.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount</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_SelfInsuranceDeductibleAmountPerIncident">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of risk retained by the entity per incident before the insurance arrangement begins to provide coverage under various risks.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SelfInsuranceDeductibleAmountPerIncident</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_SelfInsuranceDeductibleAmountPerPersonPerPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of risk retained by the entity per person, per policy before the insurance arrangement begins to provide coverage under various risks.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SelfInsuranceDeductibleAmountPerPersonPerPolicy</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_SelfInsuranceNumberOfMedicalPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of medical plans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SelfInsuranceNumberOfMedicalPlans</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_us-gaap_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_WorkersCompensationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WorkersCompensationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EmployersLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EmployersLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_LossContingenciesByNatureOfContingencyAxis=us-gaap_GeneralLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_GeneralLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_AutoLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AutoLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EmployeeMedicalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EmployeeMedicalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EmployeeMedicalPlanOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EmployeeMedicalPlanOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EmployeeMedicalPlanTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EmployeeMedicalPlanTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=fix_EmployeeMedicalPlanThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EmployeeMedicalPlanThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301754938264">
<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="3">12 Months Ended</th>
<th class="th" colspan="1">177 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 08, 2020</div></th>
<th class="th"><div>May 31, 2017</div></th>
<th class="th"><div>May 31, 2012</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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Share repurchase</a></td>
<td class="nump">$ 27,054<span></span>
</td>
<td class="nump">$ 30,120<span></span>
</td>
<td class="nump">$ 19,550<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=fix_EquityIncentivePlan2012Member', window );">2012 Equity Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized and reserved for issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares available for issuance</a></td>
<td class="nump">2.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=fix_OmnibusIncentivePlan2017Member', window );">2017 Omnibus Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized and reserved for issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares available for issuance</a></td>
<td class="nump">1.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased', window );">Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program</a></td>
<td class="nump">10.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased', window );">Additional number of shares authorized for repurchase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">9.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare', window );">Average price (in dollars per share)</a></td>
<td class="nump">$ 74.57<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21.69<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Share repurchase</a></td>
<td class="nump">$ 27,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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Share repurchase (in shares)</a></td>
<td class="nump">0.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></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_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The additional number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased</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>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased</td>
</tr>
<tr>
<td style="padding-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_TreasuryStockAcquiredAverageCostPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_EquityIncentivePlan2012Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EquityIncentivePlan2012Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=fix_OmnibusIncentivePlan2017Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_OmnibusIncentivePlan2017Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=fix_StockRepurchaseProgram2007Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>86
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301852720216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stockholders' Equity - Anti-Dilutive Stock Options (Details) - Stock Options - shares<br> shares in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Earnings Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=fix_EmployeeAndNonemployeeStockOptionMember', 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Earnings Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">0.1<span></span>
</td>
<td class="nump">0.1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=fix_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=fix_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>87
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301760089144">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common shares outstanding, end of period</a></td>
<td class="nump">36,091<span></span>
</td>
<td class="nump">36,188<span></span>
</td>
<td class="nump">36,658<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="top.Show.showAR( this, 'defref_fix_EffectOfUsingWeightedAverageCommonSharesOutstanding', window );">Effect of using weighted average common shares outstanding</a></td>
<td class="nump">194<span></span>
</td>
<td class="nump">354<span></span>
</td>
<td class="nump">196<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Shares used in computing earnings per share-basic</a></td>
<td class="nump">36,285<span></span>
</td>
<td class="nump">36,542<span></span>
</td>
<td class="nump">36,854<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">89<span></span>
</td>
<td class="nump">123<span></span>
</td>
<td class="nump">204<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares', window );">Effect of restricted and contingently issuable shares</a></td>
<td class="nump">76<span></span>
</td>
<td class="nump">73<span></span>
</td>
<td class="nump">73<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Shares used in computing earnings per share-diluted</a></td>
<td class="nump">36,450<span></span>
</td>
<td class="nump">36,738<span></span>
</td>
<td class="nump">37,131<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 54<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2603-109256<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 44<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2062-109256<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 26<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1828-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2600-109256<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2597-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 48<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2538-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 48<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2538-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 51<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2574-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1707-109256<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1500-109256<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>88
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301747617800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Stock Option Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 10.6<span></span>
</td>
<td class="nump">$ 6.9<span></span>
</td>
<td class="nump">$ 5.9<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit</a></td>
<td class="nump">$ 2.2<span></span>
</td>
<td class="nump">$ 1.5<span></span>
</td>
<td class="nump">1.3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement', window );">Sum of age and years of service for accelerated vesting on retirement of certain stock options and restricted stock awards</a></td>
<td class="text">75 years<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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember', window );">Stock Options</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding at beginning of year (in shares)</a></td>
<td class="nump">268,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised (in shares)</a></td>
<td class="num">(198,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding at end of year (in shares)</a></td>
<td class="nump">70,000<span></span>
</td>
<td class="nump">268,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable at end of year (in shares)</a></td>
<td class="nump">70,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted-Average Exercise Price</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding at beginning of year (in dollars per share)</a></td>
<td class="nump">$ 30.53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (in dollars per share)</a></td>
<td class="nump">28.95<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding at end of year (in dollars per share)</a></td>
<td class="nump">$ 34.97<span></span>
</td>
<td class="nump">$ 30.53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Other 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Intrinsic value of options exercised</a></td>
<td class="nump">$ 10.8<span></span>
</td>
<td class="nump">$ 3.2<span></span>
</td>
<td class="nump">$ 3.5<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted-average remaining contractual term of options exercisable</a></td>
<td class="text">5 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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value of options exercisable</a></td>
<td class="nump">$ 4.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Number of options that are vested and expected to vest (in shares)</a></td>
<td class="nump">100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price of options that are vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 34.97<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Unrecognized compensation cost</a></td>
<td class="nump">$ 0.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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Nonvested at end of year (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the sum of age and years of service for accelerated vesting of certain stock options and restricted stock awards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement</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_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>89
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301754878136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Stock Option Plan Activity (Details)<br> shares in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2021 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeOneMember', window );">$16.15 - $30.36</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Exercise price, low end of range (in dollars per share)</a></td>
<td class="nump">$ 16.15<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Exercise price, high end of range (in dollars per share)</a></td>
<td class="nump">30.36<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeTwoMember', window );">$36.25 - $54.38</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Exercise price, low end of range (in dollars per share)</a></td>
<td class="nump">36.25<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Exercise price, high end of range (in dollars per share)</a></td>
<td class="nump">54.38<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeThreeMember', window );">$16.15 - $54.38</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems', window );"><strong>Stock-Based Compensation</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Exercise price, low end of range (in dollars per share)</a></td>
<td class="nump">16.15<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Exercise price, high end of range (in dollars per share)</a></td>
<td class="nump">$ 54.38<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember', window );">Stock Options | $16.15 - $30.36</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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract', window );"><strong>Options Outstanding</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Shares | shares</a></td>
<td class="nump">28<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life</a></td>
<td class="text">4 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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 28.13<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember', window );">Stock Options | $36.25 - $54.38</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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract', window );"><strong>Options Outstanding</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Shares | shares</a></td>
<td class="nump">42<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life</a></td>
<td class="text">5 years 8 months 12 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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 39.44<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember', window );">Stock Options | $16.15 - $54.38</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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract', window );"><strong>Options Outstanding</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Shares | shares</a></td>
<td class="nump">70<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life</a></td>
<td class="text">5 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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 34.97<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="padding-right: 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1</td>
</tr>
<tr>
<td style="padding-right: 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=fix_ShareBasedCompensationExercisePriceRangeThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>90
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301755538248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Fair Value Assumptions (Details)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>item </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 10.6<span></span>
</td>
<td class="nump">$ 6.9<span></span>
</td>
<td class="nump">$ 5.9<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember', window );">Stock Options</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Other 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Total fair value of options vested</a></td>
<td class="nump">$ 0.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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward', window );"><strong>Nonvested Options, Shares</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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Nonvested at end of year (in shares) | shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=fix_RestrictedStockAndRestrictedStockUnitsRSUMember', window );">Restricted Stock and Restricted Stock Units</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Other 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Compensation expense yet to be recognized</a></td>
<td class="nump">$ 1.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average period over which compensation cost will be recognized</a></td>
<td class="text">1 year 9 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Shares</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Unvested at beginning of year (in shares) | shares</a></td>
<td class="nump">120,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</a></td>
<td class="nump">67,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares) | shares</a></td>
<td class="num">(72,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Unvested at end of year (in shares) | shares</a></td>
<td class="nump">115,000<span></span>
</td>
<td class="nump">120,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Unvested at beginning of year (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 45.21<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share) | $ / shares</a></td>
<td class="nump">76.73<span></span>
</td>
<td class="nump">$ 39.03<span></span>
</td>
<td class="nump">$ 51.02<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share) | $ / shares</a></td>
<td class="nump">54.53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Unvested at end of year (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 57.74<span></span>
</td>
<td class="nump">45.21<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Fair value of shares vested</a></td>
<td class="nump">$ 3.9<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 76.73<span></span>
</td>
<td class="nump">$ 39.03<span></span>
</td>
<td class="nump">$ 51.02<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Aggregate intrinsic value of restricted stock vested</a></td>
<td class="nump">$ 5.5<span></span>
</td>
<td class="nump">$ 2.9<span></span>
</td>
<td class="nump">$ 3.5<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Stock Units</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Other 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Compensation expense yet to be recognized</a></td>
<td class="nump">$ 1.1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average period over which compensation cost will be recognized</a></td>
<td class="text">1 year 4 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></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="top.Show.showAR( this, 'defref_fix_TypesOfPerformanceStockUnits', window );">Types of performance units | item</a></td>
<td class="nump">2<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="top.Show.showAR( this, 'defref_fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer', window );">Percentage of units measured on stock price relative to peer group</a></td>
<td class="nump">50.00%<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="top.Show.showAR( this, 'defref_fix_PercentageOfUnitsMeasuredOnPredeterminedEPS', window );">Percentage of units measured on stock price based on pre determined EPS</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance', window );">Period for which shareholder return is compared with peer group for units determined by EPS performance</a></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="top.Show.showAR( this, 'defref_fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue', window );">Calculated fair market value</a></td>
<td class="nump">$ 10.2<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="top.Show.showAR( this, 'defref_fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion', window );">Value of PSUs granted</a></td>
<td class="nump">3.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 5.7<span></span>
</td>
<td class="nump">$ 2.7<span></span>
</td>
<td class="nump">$ 1.9<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Stock Units | 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_PerformanceMultiplierForDollarDenominatedAwardGranted', window );">Performance measures for dollar denominated award granted</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Stock Units | 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_fix_PerformanceMultiplierForDollarDenominatedAwardGranted', window );">Performance measures for dollar denominated award granted</a></td>
<td class="nump">2.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_fix_PercentageOfUnitsMeasuredOnPredeterminedEPS">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents information pertaining to the measurements of units based predetermined EPS.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PercentageOfUnitsMeasuredOnPredeterminedEPS</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_fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents information pertaining to the measurements of units based on relative group of peer EPS.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer</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_fix_PerformanceMultiplierForDollarDenominatedAwardGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the performance multiplier for dollar-denominated award granted at target.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PerformanceMultiplierForDollarDenominatedAwardGranted</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:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<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_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period for which shareholder return is compared with peer group for units determined by EPS performance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward</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_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the fair market value of liabilities of performance share awards, as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue</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_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the fair market value of current liabilities of performance share awards, as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion</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_TypesOfPerformanceStockUnits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of types of performance stock units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_TypesOfPerformanceStockUnits</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_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=fix_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=fix_RestrictedStockAndRestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=fix_RestrictedStockAndRestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>91
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.0.1</span><table class="report" border="0" cellspacing="2" id="idm140301756834920">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments | segment</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">$ 3,073,636<span></span>
</td>
<td class="nump">$ 2,856,659<span></span>
</td>
<td class="nump">$ 2,615,277<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">563,207<span></span>
</td>
<td class="nump">546,983<span></span>
</td>
<td class="nump">501,943<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital Expenditures</a></td>
<td class="nump">22,330<span></span>
</td>
<td class="nump">24,131<span></span>
</td>
<td class="nump">31,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="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total Assets</a></td>
<td class="nump">2,209,114<span></span>
</td>
<td class="nump">1,757,355<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="top.Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating | Mechanical Services</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">2,542,623<span></span>
</td>
<td class="nump">2,430,632<span></span>
</td>
<td class="nump">2,272,031<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">486,346<span></span>
</td>
<td class="nump">513,760<span></span>
</td>
<td class="nump">469,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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital Expenditures</a></td>
<td class="nump">19,408<span></span>
</td>
<td class="nump">22,561<span></span>
</td>
<td class="nump">28,070<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total Assets</a></td>
<td class="nump">1,452,527<span></span>
</td>
<td class="nump">1,246,098<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="top.Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating | Electrical Services</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue</a></td>
<td class="nump">531,013<span></span>
</td>
<td class="nump">426,027<span></span>
</td>
<td class="nump">343,246<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">76,861<span></span>
</td>
<td class="nump">33,223<span></span>
</td>
<td class="nump">32,596<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital Expenditures</a></td>
<td class="nump">2,413<span></span>
</td>
<td class="nump">944<span></span>
</td>
<td class="nump">1,367<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total Assets</a></td>
<td class="nump">690,364<span></span>
</td>
<td class="nump">419,475<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="top.Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember', window );">Corporate &amp; Eliminations</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital Expenditures</a></td>
<td class="nump">509<span></span>
</td>
<td class="nump">626<span></span>
</td>
<td class="nump">$ 2,313<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total Assets</a></td>
<td class="nump">$ 66,223<span></span>
</td>
<td class="nump">$ 91,782<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_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8672-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MechanicalServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ElectricalServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ElectricalServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>fix-20211231x10k_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/2021q4"
  xmlns:fix="http://www.comfortsystemsusa.com/20211231"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  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-20211231.xsd" xlink:type="simple"/>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_OrX3k8Mra0SMowQ1DM179A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_o9XNW7IAuUWHyBzMBoG5hQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">fix:TaxYears2016To2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2020-07-01</startDate>
            <endDate>2020-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_HAHm8VeHFkqX3ve2F7PpQA">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg">
        <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>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_StPrCiBetkuLKqMF70IYjw">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_XDJscgAzdUGihjM6TZH90w">
        <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="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_nngfx7WNNUSuh314z2prEw">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GDm_X5w_JkOWpnLGDap6pA">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ejq1fDLKfE2zYdVu-X7maw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gvJg1FFo30G2CGat9dSB7A">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_rbFz2HkyIUmBi3TvgjLIUA">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember__WriG1u5eUelXYKaXjjxZQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_28u-wZbMN0ybX624baJDcw">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_3ZMHZXUKbkKjuqWon5IuCQ">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_g9pCif2xtUinDsa9OmkIKw">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_TtB2KgWAbUSYEJuZo5jLyw">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember__Ygvz9Bia0C9yTDza1KaXw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_pSGnW_R4hUqiqPqmNla8MQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_p2A2AKqPZ0Ka_xwC-Mw8fA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">fix:ShareBasedCompensationExercisePriceRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_MP9TuGHwgkKr3t_gkjwQfg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_2TDYtv8R7kOzs7W1j1ve-g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_lqhw-ZMnekG_F5M0xEZSZw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:OmnibusIncentivePlan2017Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member__4F9hnKzF06tBh5Un2QPfg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:EquityIncentivePlan2012Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_5_31_2017_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_X4x_ToKsyEabhYk7zXHekA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:OmnibusIncentivePlan2017Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-05-31</instant>
        </period>
    </context>
    <context id="As_Of_5_31_2012_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member_MaOHwMApYky_GP_adjnIHA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">fix:EquityIncentivePlan2012Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2012-05-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember_AO-XwJFX90GvX7_VBZ9rCw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_sM7XPaiI-Eukfog9MYendg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_-2XKPZFsX0qjeBT0aHlolg">
        <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>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_5OPwwdVo-Ueo1GzHPbh61A">
        <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>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_Q1OqB17gXEumo0a39qVC5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_-la0iODr2kObdGoUPdvaIQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_C6ecXKwanEaPzyzIvmCNUA">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_1XDoZwPjwkuXhKJ_PPmhuQ">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_YdsRN5BWkkGW0leygAn9rw">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_CfjJ7lpZBEmN9BESr9T6vQ">
        <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:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_KMSArFTvnUWXY3MQZgMe8Q">
        <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:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_wqg8tYEFcUqNXIPGuDQO7A">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_ohjUZXDvqEmz_tIWZxTtTQ">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_ZWSx8AeTwkG1jZc1EpNWmQ">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_sg3HNZ_HvUuT_GVRoogW7Q">
        <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:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_Z7hfTyj8UEuMOBuiByFVKw">
        <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:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_8dno5vJvb06Aj61uFxC6ew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_88azp6s78kSUSFUztFc8gQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_apRQpgl3pEKC10gNy-HpFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7_8Soz4n10eFV13Hansrsw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_RynWBONYdU2zhg1hyMtZXA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_Yvj1j1EMc0qYWARF1IJuqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_1HoQL2TdLUuevW9FSC-4EA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_JD2hZBZ5SUeQguMFQIU78A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_rp5djebjj0G_OZvpOkSONQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_o8jPpr8g6Uy_QIuP8eHCqg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_uRyPTRAiJkSF6K3-uQLP7A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_sehftOd7T0-3_DJg2qdVyw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_53Y1EGQrO0adgH-r_TpjiQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:ComputerAndTelephoneEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_IiLBu4et_EGxmH_5eh6kSQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">fix:BuildingAndLeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_P-U_axaeAUSCpyPBJfFlTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_e4IazHmIVEClFC554FxRrA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_mQ7eJpZb-kq3uBkiPbm_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_RJ8mDCkkMk6GLBc3oTSXlw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-20</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_NvMtvyRE0kivbU5z_rcaxQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_NotesPayableOtherPayablesMember_3TceZDXMdk28FCIkhn0bqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:NotesPayableOtherPayablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_TCGtcfu8HUu1XCBfxeU4QA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_87gmMkjc-Ea2tymjomRPyA">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_CounterpartyNameAxis_fix_CustomerMember_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_Mbc2I9cwlU2yiu47XX-7yw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">fix:CustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LitigationStatusAxis">us-gaap:PendingLitigationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:PerformanceGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_oppgyQDECk2oTRBo51MDtg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_1_6yX_X160OaMlQlIXX9rw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-20</instant>
        </period>
    </context>
    <context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_pF_M-6Fcz0KYjaZtcu1fRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-20</instant>
        </period>
    </context>
    <context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_wpTTXOlM3kibatpFqpl_AA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-20</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_uBpDF5bF80K3aXzZkPip9g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_nlhjt_7QjEKUrazO_uTBYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_7_1_2019_To_9_30_2019_zNRK5BKIsE6EkWb207MkPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2019-07-01</startDate>
            <endDate>2019-09-30</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2018_To_12_31_2018_6B76gRgqekyF7BTGXtPV5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2018Member_EXAQ6l6KZEmmvwoMAZXH_w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2017Member_YhPRpAVlh0iWjzAJl-7lpQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2017Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2016Member_SCaKsNy-BEaoPjyM0b9Nbw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">us-gaap:TaxYear2016Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_5D0tgvjB3EueSdv0DRNTBw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">fix:TaxYears2016To2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="As_Of_9_30_2020_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_M5Au-W_Ubk2x31vaTGd5kw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-09-30</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g">
        <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:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg">
        <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:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw">
        <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:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw">
        <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:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ">
        <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:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg">
        <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:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_ar_ag92PHEiDf08xJaI7aA">
        <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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_x4A3QhhopkyA0HhaFU6mxw">
        <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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_yZXemmdOR0mhiQFn-HuCNg">
        <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:FairValueMeasurementsNonrecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_jEVx-uqoe0awJkaSi1dcEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_O3vrB75OAUChrN8BNgQyHw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_gbBn4xug80Kz7YZIgH5Ebw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_NWGbM_25nk64LhchArxZng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_ciNp9JVhz0SqLbz9bc_Cog">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_pk_-pvFBPEC-kpLb5ViLYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:MechanicalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_4ZFN5dJoIUemxttzkM3voQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">fix:ElectricalServicesIndustryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_O8MqIgnETES13KHlS7-3Qg">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_pOFVUUPNK0-RRbDBckuLKg">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhF8GnyjDkyymQ0k65MU3A">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_Y1uXuWFR5EKMZBes5EHntg">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">fix:CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_4uCHXny_RkuVPPut7vqdaA">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">fix:CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_05lSAAOfkkGatc_hnwcyNg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_rFPxktgrDkq3nRDOp24QTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_34JxfyWAm02qkzKThyCKsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_q2VBjuRXZk2QnwTez7qDmA">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_VwAzqWzhvECF_cO1GBaXDA">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_fPT1dRnlmUCCPgxmfZwEAw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">fix:RestrictedStockAndRestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_1AoYVA5a0UeCQKCjTKsegw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_RlglHquN80C9VXs9bcyw7A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementBasisAxis">us-gaap:EstimateOfFairValueFairValueDisclosureMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ngYadPqEmUC_793WwuLXYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_w2Uj0_fu50qSf60D4JhNfQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_SZhX28GSYEOR7KY9ezPUDA">
        <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">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_J7SWYOC9fUCHryuapvnRqA">
        <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">us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MepHoldingCo.IncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:IveyMechanicalCompanyLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_HwNUN2Aqh02ex4HfRer4uA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateSixMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_P_RvjWuavkOfFwz2e0n1dQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateFederalFundsRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_2TOFd-VRgECF_I-EMtJ9xw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hyndtCapbkikNBx4-T5mxg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Tj-eh9hBLkKRRnWvkWGArA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_gcCzQltf0UCsmXZlxfcb6A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Lq7kpwH1MUqsTAnspI_lcg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_az6CzfTUoUWVkPoVp6fwSw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_eSZn6fMmsEi0k_rZehIQ5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_6ikDRMVBxUOW-4NlI795gw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_m1VZ78HdP0646vPIMiOfeg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:InitialApplicationPeriodCumulativeEffectTransitionAxis">us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_ConcentrationRiskByBenchmarkAxis_fix_SalesRevenueMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_o4wGaQ2_jEOXo_B6UOh18A">
        <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:ConcentrationRiskByBenchmarkAxis">fix:SalesRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_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>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_oSqTtO5eJ0SKvvHXWsmlSw">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_C5NktTUsJUW1VCxCkx_q7w">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_3Oz01fAJSEeZVas33dwxfQ">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_X7yJX-mSrU-nteLMR5PKUg">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_aC0lha81vEKDqtRcnn1P-w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_htNTGfhxb02w2Z_8YXoSsQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_BOzF4jca5EKl3Uj4BVXJRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="As_Of_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_nri7_FBwG0KcoVuDF89kpw">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="As_Of_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_z7mtxKiNHEyV3EiWBO35WQ">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MepHoldingCo.IncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-31</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorKentuckyMember_dHA321h0Ek2VAqce0UEuaw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorKentuckyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-31</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorIndianaMember_x3t2Ln50aUSMmwiX7aetFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorIndianaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-31</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:IveyMechanicalCompanyLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-01</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_3_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorUtahMember_wlDa3Mr6o0GiEpfXtbLe6w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:MechanicalContractorUtahMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_3_31_2020_us-gaap_BusinessAcquisitionAxis_fix_ElectricalContractorNorthCarolinaMember_S1phPGY1LUaxPOfBYtNHrw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:ElectricalContractorNorthCarolinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_Pl5JNyTdwEuExkUGgvxiWA">
        <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:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_QK87lvCEFEeaZnIWHdi9PQ">
        <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:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_tLE31vHPOU6043kMT4WWkQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_m8LIORfOs0Wtc0Mh1nc46w">
        <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:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_GUSkRB9uL0qVcKDRmgb3aQ">
        <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:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_j-W2z0OaUUyD3hgq7N05mQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_HUBuliTaLka1hi-Y0urXxA">
        <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:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_MDW920TLfEGBXUbYyXDF-g">
        <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:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">fix:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_h5ywFeT7FUa235wPMCtwOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_mvqmfs3lMEKMBkhnUnvcqA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_ZQhsY7wyskqSaU2eSEUUDA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_sk2YKkoNrUmLFi4ANUXtvQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ServicesActivityMember_T-koUBf_YEe9irSQZvCyZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_HiNGDrv8wUuHEmHlOpGe9Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_9SDAJRGL7k2bd1DHR0pMjw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_hs1uVtRQu0GDdUMe7AiKyQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZrPMMuESiUOJlowLOYivqg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_zib6Ek_D2UW5TrcoW1eA1g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OrderOrProductionBacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iBFZquizlEal0mRaYsizMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_8_2020_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_NcowEMOjcECN5l3FkBq3Zg">
        <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>2020-12-08</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalMember_WP5DJYN1cke6lZSaEudAfQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanTwoMember_rlkGH_8ZSUeoCQU2gSWJYA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanOneMember_TFzL1__IbUSyj03-uawq1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_Xd2YTgeJJUmJn4FFA843Iw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployersLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanThreeMember_OLJ1wzNVLU60hls9lr1hKw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:EmployeeMedicalPlanThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:GeneralLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:WorkersCompensationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">fix:AutoLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_BR-evTo8skW1q-KzV_SeVw">
        <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:GeneralLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_-GKW7Q3ip0mxigKVVAYiCQ">
        <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">fix:EmployersLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_JsfG-PJXuUGAtMCB5QSbCw">
        <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">fix:AutoLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:SystemInstallationInNewlyConstructedFacilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MaintenanceRepairAndReplacementServiceMember_Zgr028iIY0KoMb6WF6_NqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MaintenanceRepairAndReplacementServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_20_2019_To_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_dMpgsjhRT0CYASNM6Dw1fw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-20</startDate>
            <endDate>2019-12-20</endDate>
        </period>
    </context>
    <context id="Duration_12_19_2019_To_12_19_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_PQDkiwC6d0qdS8fcKajinQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-19</startDate>
            <endDate>2019-12-19</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductAndServiceOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_TIRAAjbzQE-xstZuxMM9ww">
        <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:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ORtjML83106tX4PSDAn5xQ">
        <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:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:RetailRestaurantsAndEntertainmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:OfficeBuildingCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:MultiFamilyAndResidentialMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:MechanicalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:IndustrialPropertyCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:HealthcareSectorCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:GovernmentCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA">
        <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>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ElectricalServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">fix:EducationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_aC11Na-UtkSXBk48xtvyzw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_RutgiWxKtUmym0RBAhJ6JA">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_v1DvR0XCTE6OEwD3U51ljg">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_axranmOZHUKK7DGCmEVbEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-20</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LitigationStatusAxis">us-gaap:PendingLitigationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:PerformanceGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">fix:AmendedSeniorRevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-20</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantRatioAxis">fix:DebtCovenantRatioRangeFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2022_To_3_31_2022_srt_StatementScenarioAxis_srt_ScenarioForecastMember_vjmHLjEnfEe7F0AsMXTz4w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2019-10-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_94MfVwXlx0qeB3SPPKcD5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_k12gmJXdMk-MQufdpmrT3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_bsKJgzCU80yaQtj_xZcD1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember__xmO7ZpnR0edSVgVwQ6_2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_UVJ4gzu9Pkeji3DxTyIPfA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateSixMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_yGK5mhQa0kWTAf8_VyhZag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:EurodollarMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_jDK33UXujUm3Sh_8EG7ZCA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateOneMonthLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hOTR_7DRhEquG4W5z7ClIA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">fix:DebtInstrumentVariableRateBaseRateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtInstrumentVariableRateSecondaryClassificationAxis">fix:DebtInstrumentVariableRateFederalFundsRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_srt_StatementScenarioAxis_fix_ScenarioCovenantRequirementMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_PvPVAIJ0xE6eAUdS3G69fQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">fix:ScenarioCovenantRequirementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA">
        <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:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_fix_DebtCovenantEffectiveDateAxis_fix_ThroughMaturityMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_OPi3mk8UhEyWfglP37eGFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="fix:DebtCovenantEffectiveDateAxis">fix:ThroughMaturityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_nClKzh0mOk60_cNUnDRYHg">
        <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:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_9Cm74uBn102W9O3QmvG5gQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TECIndustrialConstructionAndMaintenanceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_TH6lFYVDIE6sBs8j3Ld5Og">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TasEnergyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-01</instant>
        </period>
    </context>
    <context id="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_xDUpgl2P7kSc5svmw1j7Kg">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Ugs_7TJxDUeE-udZq2scUQ">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputInceptionDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_mdgYGEHA10S1t7vuh8iXuQ">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_-pccivjDLkiX5p9hMiZviQ">
        <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:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-01</instant>
        </period>
    </context>
    <context id="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TECIndustrialConstructionAndMaintenanceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-10-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:TasEnergyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-04-01</endDate>
        </period>
    </context>
    <context id="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-08-01</startDate>
            <endDate>2021-08-01</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_LzyA2-ftwU-WoA6TssuP-A">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ctFv_0z9O0WR3nrjBcS6fg">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ServicesActivityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">fix:ConstructionActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="As_Of_6_30_2021_kxsV_zEQA0GYvEMUk3FzKQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="As_Of_2_18_2022_jQjmtqpUSECoDA87yriGeA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <instant>2022-02-18</instant>
        </period>
    </context>
    <context id="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001035983</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <unit id="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">
        <measure>shares</measure>
    </unit>
    <unit id="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">
        <measure>pure</measure>
    </unit>
    <unit id="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">
        <measure>fix:item</measure>
    </unit>
    <unit id="Unit_Standard_Option_dsaBN6XxaEiIib8B3c8M0w">
        <measure>fix:Option</measure>
    </unit>
    <unit id="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">
        <measure>fix:segment</measure>
    </unit>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      id="Hidden_DQI8CAkq1kGaYXTwcltuMQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      id="Hidden_cmjxRYMM7Em3tFv4ClbdXg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValue
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      id="Hidden_g_ocsM_YeECjnxxZRGU3aA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValue
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      id="Hidden_gx4fZnbk4kefI_SljoPrhA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Hidden_qeeW_Mhz_kK5lW_N8t46sw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      id="Hidden_YsyGhjT4RUuLi3Lets5Aqg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ"
      xsi:nil="true"/>
    <fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanTwoMember_rlkGH_8ZSUeoCQU2gSWJYA"
      decimals="0"
      id="Hidden_YtnPa85EZUG1LYw17wGRBw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">350000</fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy>
    <us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Hidden_kZ9mqrjuIkuTp1OYmXuhBQ">true</us-gaap:RevenuePracticalExpedientRemainingPerformanceObligation>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Hidden__6kHnwHXfUKaXue5L9jw7w"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Hidden_1tXxFzWPLUKtcKbZl3grTw"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_Y1uXuWFR5EKMZBes5EHntg"
      id="Hidden_CcfO-HB-okeWU5MqGAiZHQ">P1Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <fix:SelfInsuranceDeductibleAmountPerIncident
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanThreeMember_OLJ1wzNVLU60hls9lr1hKw"
      decimals="0"
      id="Hidden_STJq7lThfkubfTudKLui7w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">350000</fix:SelfInsuranceDeductibleAmountPerIncident>
    <fix:PaymentsReceivedTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"
      id="Hidden_riBRZn21y0eQAjcY6Boz0Q">P30D</fix:PaymentsReceivedTerm>
    <dei:EntityCentralIndexKey
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc__ICr1PyBw0ehLzQHoFstcg_2_1">0001035983</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalYearFocus
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_fr93nnrn9k6VeoPY5bxRHg_4_1">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_K2SchF_mcUmVSQPZnn5Npg_5_1">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_NhY5zO-MCEuBGe1OKAGaqg_6_1">false</dei:AmendmentFlag>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      id="Hidden_ZoYV9Ak1x0qoBQBxKtcfzA">http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      id="Hidden_2cVqb2UXk0qLrryqjipzPQ">http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent</us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_uBpDF5bF80K3aXzZkPip9g"
      id="Hidden_Jy-T07AOW0GkRD4aV4OpIQ">P3Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <fix:GainRecordedAsReductionInCostOfServicesExpense
      contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ"
      decimals="-5"
      id="Hidden_ya8cO3-ldUOAIAIbX8MKow"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3200000</fix:GainRecordedAsReductionInCostOfServicesExpense>
    <fix:ReceivableDueTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"
      id="Hidden_gm00fDXIjUiWVD1l4A7FZg">P45D</fix:ReceivableDueTerm>
    <us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      id="Hidden_FgMkO2rf00CIiBtTbwWcSQ">http://fasb.org/us-gaap/2021-01-31#OtherLiabilities</us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList>
    <dei:DocumentType
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_lEq6dNuYPU6VSQk0hMu_rw">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_ttPTyI3isku-h7hUPJ1REg_3_0">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_ff0nrvT3VkOttmKSl0LQcQ">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_9jIm8Oh1pEqSXhsmX15rTQ">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_Xb9p94RJcEm6rBuqJZMnIA_6_0">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_MqfVtWaBLUumsfD07ldM_A">1-13011</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_-h2MpOyHZkK2hB2NFkznxw">Comfort Systems USA,&#160;Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_6SGUoX-aD0-flHFVOYIuUA">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_1o9MY7PnlUuN_OZTcUR-GQ">76-0526487</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_4qZgfAjBF0eDtlRCVCqYaA">675 Bering Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_vU4hVC4I9k-nLuk0kW2RBw">Suite&#160;400</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_Tf743UK0uU2jcRPop6v3qQ">Houston</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_aJ3OJI3EH0G1wquT66CVig">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_VHOHZNB_dEKOeMqaErXUHA">77057</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_namPPZ5uTUm9P7yiUa3uNw">713</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_bNI8j1Fty0qdSkm6NJVxaQ">830-9600</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_cgHDPzEK2U6YIcLsNgvD7w_2_0">Common Stock, $.01 par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_7i8cFoDu-k2EDAVt71I-lA_2_1">FIX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tc_Phr5bMvwjkWkCCvOMYuHrA_2_2">NYSE</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_oEWoyXq8Rk2Lh6Vj0CuvEw">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_sSEUXlXEHEu4wh64fzuCMg">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_zpDTvCyoN0-tRa5oTSztzQ">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_6yPiu5Bz1UiaAc6JEdSx8A">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_ObMRll7-Z0eQ6VU5cRTwog">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_2pQHjWS4UUmRHlgISzudnA">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_GYbmcUpNs0KWOGTLvw1fLA">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_YOClSeWXD0SKEKQi_9wT5g">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_n3o9N3NqDES1hGo-HgazxQ">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="As_Of_6_30_2021_kxsV_zEQA0GYvEMUk3FzKQ"
      decimals="-7"
      id="Narr_oWyK1ZnwXkWTQRy1QBcFGg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2790000000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="As_Of_2_18_2022_jQjmtqpUSECoDA87yriGeA"
      decimals="INF"
      id="Narr_0S_RGqxHnEW1-KnmBW0Vkg"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">35956839</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_Fd8wvphHKU28Bn77HdTgBQ">34</dei:AuditorFirmId>
    <dei:AuditorFirmId
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      id="Narr_6mHxt5jkLkqULXqDRb9OGQ">42</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_FHIXn22PI0qGLOiVPeklvw">Deloitte &amp; Touche LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_DXLP5ibbBUOQy1v5te3pPw">Houston, Texas</dei:AuditorLocation>
    <dei:AuditorName
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      id="Narr_4nZm-juiU0eQEwQkspnNGg">Ernst &amp; Young LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      id="Narr_iS4OyBmW0USd7gu_tkmzPw">Houston, Texas</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Bry55yRWg02my_8_Svxh0g_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58776000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_VommJjgX7kuE0rZhn3Y_3A_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54896000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Narr_P9gErz_b_UW1rGT_w4W-vQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8808000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Narr_NrD4735Cik6YqxyeLrR_2A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9087000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:BilledContractReceivables
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_UuafO6OArkSiFSKMzSRD3Q_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">773716000</us-gaap:BilledContractReceivables>
    <us-gaap:BilledContractReceivables
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_tJGBveSWVUark-2Lo5HpiQ_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">619544000</us-gaap:BilledContractReceivables>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Narr_xQ2lSeNvwEGGrJeCF9x97w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">715000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Narr_KJuO5_wKI0amN9xau-d4vA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">784000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_oY47X0HoDUmQql0j_CRWtg_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">61881000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_XHTVUmNJZEyiTBOQOd6nQA_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45596000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Narr_ailH5m64KUeQJkBrCtqWAA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">503000</us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent>
    <us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Narr_gtF1CaksNEC-pvHNb07zqQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">759000</us-gaap:AllowanceForDoubtfulOtherReceivablesCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_lwZfpjDcvkGrO53pkzcGvQ_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">57491000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_pr3eNFPVZEmni0vhy0jOyA_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">44212000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_lw_mrNCOUEy_QcZN7bdSVQ_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">21853000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_btNaxB4aB02l1YWoX6nnWw_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">13472000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ywnKEgNGMk--2OFairCREw_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">23704000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_oIPtzjd2RkSqmnALPTr7qg_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15510000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <fix:CostsInExcessOfBillingsAllowanceForCreditLosses
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Narr_CfhFh22_OEy8J4-2ifkI9Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">84000</fix:CostsInExcessOfBillingsAllowanceForCreditLosses>
    <fix:CostsInExcessOfBillingsAllowanceForCreditLosses
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Narr_KNq8fqV4EUKg4tezNE-pCw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">79000</fix:CostsInExcessOfBillingsAllowanceForCreditLosses>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_1Zwfw7RuQkimWQiWnPM9Xg_12_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29900000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_iFyBHhhH-0Guz76sBfXYcQ_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18622000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_n__i8njl1kmDurn5T7v4dg_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1027321000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_zcVAyz1VhkaCsor_jYnzWw_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">811852000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_tGDI1xPav0uBwbBoFfpumg_14_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">128554000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_7mGFip-piUeH08gzQrbVxw_14_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">117206000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_mQhPk5eTz0u-y8TNF-Wcxg_15_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">124756000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_U8p4Uy6Jok6T-n0MaHnu1Q_15_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">94727000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_bnQ7DgmTn021zH5UwQ7OgQ_16_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">592114000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_o6tWYqBSJUKZTlbKuTT8vA_16_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">464392000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_MDcblYo-n0S5KsCT1_bW7Q_17_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">304781000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_RYP1jgL95Ei236QUgo6-sg_17_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">231807000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_9OOtjZa4x0meaWaMb0j82Q_18_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22905000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_LtnWN7MgVUylDpZHa-QtwA_18_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29401000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_RG16usGKaUylblRCUkr94g_19_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8683000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_k4k7rZO2C0iS3Sz9DU30xA_19_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7970000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_HsN-Ig-ZNEub6r7t5nfgwA_20_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2209114000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_kFH-S1ANh0yU97axVVLSCA_20_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1757355000</us-gaap:Assets>
    <us-gaap:LongTermDebtCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_soknmzUp-0ug5uvmd1uwaA_23_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2788000</us-gaap:LongTermDebtCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_D_kf4roSIEWC-HvnnxTukQ_24_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">254788000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_SbJJg3wERUOhjMxZ9lXZGg_24_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">204145000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_umkVU35vm0etdvX2Cued9A_25_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">129971000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_AMe2aCSi2EallKOCDvRpYg_25_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">121864000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_q3DDANibAkSjzyDgKh0awQ_26_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">307380000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_YViqylf4XE2qzd9e3Gn4eA_26_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">226237000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:SelfInsuranceReserveCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Hjx1mESPTUK8UY6qfMRI5w_27_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22227000</us-gaap:SelfInsuranceReserveCurrent>
    <us-gaap:SelfInsuranceReserveCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_gquvPV87FkahEuUpgh90ag_27_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">49166000</us-gaap:SelfInsuranceReserveCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_mCTpdPgsbUOZhRmpGLJZ7g_28_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">119400000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_vuiv45fJG0C1nnouDzzEpQ_28_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">91492000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_oV-IOFQIak6W-Geh8eeljw_29_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">836554000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_fL3T_qan1k6xGqCSKynuSQ_29_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">692904000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_LDOH7Pgph0uQhFwK36TkBQ_30_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">385242000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_X9V8oApgqUWyMEBI6wA_NQ_30_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">235733000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_W89heMVnDE-cCY_D0lvDnw_31_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">107701000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_7naD6Jv2Uk-od8GWp08g9A_31_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">80576000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_OqiRif5ngUKjIu5NEjvV3A_32_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1745000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_56Jr09xnCUe-2Cpj0HhEVA_32_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1339000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_MCLEny3Zn0GMtiEyJqhttQ_33_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">72206000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_O5Wd7RZyhUCwIqp6d-pojg_33_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">50374000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_oEo5f8dD9E2a10F3LbQy_Q_34_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1403448000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_W5BvfNoMukaeym7_B90ZwA_34_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1060926000</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_Nb-GBFOC9kySZOMbuwwQcQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_DusyBIFWkEizhDzof2XhCg"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_7NnXJnTDzEC7MAJpOserNg"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_z9nUMr6QE0ebV3G4Fm-CCg"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_eZ_k8-dAzEKHsZZGBYQcjA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_OTIQU65ImUSmkyJ0XWhGNQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_4-o9shhOU0efFNffiiA46A"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_sD_WycMkW0Wk0LO1tDNPHQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_EeW-yrNtsEWdabRy8SR1ig"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">102969912</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_qTCaQ4817kiZ6ZtIOqMbOA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">102969912</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_pb25ZaMuUEGOegmxnDY-rA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_cV9Uc5fgYk2tCUFjkU-dkA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_fo3_gCDxlEGpxU-L6eWcDA_38_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_63hYnjc-rEyY7FI4uOVf7w_38_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:CommonStockValue>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_nQ9jJXQzR0qFt61SUPNWMA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">5032311</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="INF"
      id="Narr_phSfG1boDUue7CAipry7ig"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">4935186</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_3VEtvFn41UuLz0q0A00eVA_39_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150580000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_DDUT6bCj9kqK9PVkf0bGqw_39_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">129243000</us-gaap:TreasuryStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_SeSQR56A6k-m-5WLvFqCWQ_40_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">327061000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_cHstu1pKsE6qexhqoJJfZw_40_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">322451000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_TUv5VJZaLkajBXtIbiHpKQ_41_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">628774000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_BsZ5gANOX0WSLdfjfr_Jfg_41_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">502810000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_fZkC0ixwGUW4e9GQhTP2mA_42_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">805666000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_kZalOmk7O0qILoUsW0-T4A_42_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">696429000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_yKTLdeP9UUaBvbF2aKURSQ_43_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2209114000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_Rc1C9OjwkkyUmB17_FzBkw_43_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1757355000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_JfBpCOaGek6aNaoVu9-zQg_4_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3073636000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_7sIETQu1-Uq0LSciWnm_Hw_4_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2856659000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_aUKwlg5wxESD7Ev00iyD0A_4_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2615277000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_Lo2eCdLbYEyQfMD7n6F8qA_5_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2510429000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_RHXEu4LLoECCkr2Yw6C_Qg_5_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2309676000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_yY3WTOoWb06zwYBCDH6WcA_5_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2113334000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_5oTIsjg6YE68sphx22Sqvg_6_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">563207000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ODwj7oXh4EOV4rQa8OP32g_6_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">546983000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_9ekrXBe4PkKLVh-ZKxI1nw_6_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">501943000</us-gaap:GrossProfit>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_bTUW-8stSEGlKWUIHBACKg_7_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">376309000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_lOZMXIVBC0-Hs9tF97sCQQ_7_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">357777000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_oQJ9IimydUSM3dTED9xH3g_7_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">340005000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_yOIuN4txM0qW5rBQGI7n1g_8_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1540000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_pXhng2sGAkqKIWf1uFGtyw_8_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1445000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:GainLossOnDispositionOfAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_lMdDU_INiEyzWdPNJkT9Ng_8_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1701000</us-gaap:GainLossOnDispositionOfAssets>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_yV6L4EFDJEmIKquc4n5XbQ_9_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">188438000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_9qj_V8xJg0CFs3SVYPgcLw_9_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">190651000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qKHEiXq61k2qt5Invl6_hg_9_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">163639000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_UvjZHj8FbUGSlXP7u2WB6Q_11_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_6ZUOyQUz5U-JOfcDoe2obw_11_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">103000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qgfDOOVgpE-8_mGFvB1QFA_11_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">224000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_47DuLV2_sUK9pzPTC1Az9Q_12_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6196000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ootcd8QtPkW6lImyqmtqmg_12_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8385000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_grLVk4bI6EC7AluazjwXTg_12_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9317000</us-gaap:InterestExpense>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_wbLP4qR-XEuEHfov3LzQEQ_13_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-7820000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_aYy1rxr_r023HfC81GP4uw_13_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-9119000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_NNj48VVPTUSUZGgrBxowiQ_13_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2991000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_OVuvVlxTuEasT2nXsNr_7g_14_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">188000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_cgApQ_6BY0qns9wVbiIrTA_14_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">52000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_8PiKn8BUiUKtQtjhFFM5AQ_14_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">187000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_wfiEOSfHW0uEj1R7QuJMQw_15_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1836000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_jhH3vGCFx0-1VAAGgj3mRg_15_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">889000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_lNoSa5BtqUyJhcxKcz794Q_15_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-11897000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_XZOyiIU1B0qRRVNsdc7dlQ_16_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">190274000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_2SgW-m97bUqImk8Wdn4Z1Q_16_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">191540000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_VLsKOuCbPUCbQwONUj_b6w_16_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">151742000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_8yB_t6d37U2MA06zt0Z3VA_17_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">46926000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_nfRQdIEk3kCHotsZPMk65g_17_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">41401000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_cqvBlhki2EaxJMTAWrpvhA_17_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">37418000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_JI5oiOiZkEuC5nK1_CqE3A_18_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">143348000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_uBuBG91Y-kSVJS-6dq4xwA_18_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150139000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_VkeL8Lumb0qo1Mni-up_MQ_18_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">114324000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="2"
      id="Tc_pq5bDu_ZA06M71mhM91X7Q_21_4"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">3.95</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="2"
      id="Tc_2qvsMzVVC0OvndgauR1KSQ_21_7"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">4.11</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="2"
      id="Tc_-Co1iO0dI0qrDMmbTIjOqQ_21_10"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">3.10</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="2"
      id="Tc_1zv04Wd1kUmfvnKFrvLm1g_22_4"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">3.93</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="2"
      id="Tc_mumVNUmqZkyW0eYR3hj7vA_22_7"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">4.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="2"
      id="Tc_BV4r1v75rkCPJRLfC-RJpg_22_10"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">3.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_GpBomvHtFUWnQ01465JqZw_25_4"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36285000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_v_NuumVJlEWHdm7PG-Vl6g_25_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36542000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_0Ofef9Zvvki_Ofv_Eo4TRQ_25_10"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36854000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_hVyJqiEzhEKocToTVSjSLQ_26_4"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36450000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_APonsir2C0-d-Z4gPnb_9w_26_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36738000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_PyHUX_l6gk2q19oVq9LhlA_26_10"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">37131000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ"
      decimals="INF"
      id="Tc_XqvYeOnBZUijKZF4faPuQA_4_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ"
      decimals="-3"
      id="Tc_2maOQM-RlEKvLIUGBEF8Wg_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ"
      decimals="INF"
      id="Tc_wpzHIGabkU6XOKXsbCV6bw_4_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-4229653</us-gaap:TreasuryStockShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_-e0HSASJl0y1bbXb0q6iqQ"
      decimals="-3"
      id="Tc_-tHWCzNMGECsdqKkyFZVrw_4_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-87747000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_TtB2KgWAbUSYEJuZo5jLyw"
      decimals="-3"
      id="Tc_bIKz0zax00C9xHBpCsTHKg_4_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">316479000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_g9pCif2xtUinDsa9OmkIKw"
      decimals="-3"
      id="Tc_bKvL9hDVeUCjFMlpxOIqAA_4_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">268904000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg"
      decimals="-3"
      id="Tc_hcYgsJNWekexn_G_o4zBeg_4_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">498047000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg"
      decimals="-3"
      id="Tc_Ez664UnG_UCda_iCGxB6iQ_5_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">114324000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_oEnrY_ZNX0msZ0--RcZGXg_5_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">114324000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="INF"
      id="Tc_QMfMJScPGE20Pp3Eoh2hbw_7_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">114125</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="-3"
      id="Tc_zBwWN3yOkEKXo0KMkDUuSg_7_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2532000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA"
      decimals="-3"
      id="Tc_JIW2TtkVTk6IglAXgljibQ_7_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-182000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_wwlU2IAOkUyvSKhkudXKcg_7_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2350000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="INF"
      id="Tc_mjRO7fxda0eCRMJFhRlrxA_8_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">107606</fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="-3"
      id="Tc_jJeRUN1_ckuN4lb0jv8i8A_8_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2303000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA"
      decimals="-3"
      id="Tc_vWgmhv6sAUO4pDMK-bSkDg_8_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-297000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_4i9B1a3_T06mT33yk5TbLA_8_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2006000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="INF"
      id="Tc__re7zgDkg0i9SEl4Id45ng_9_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-28586</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="-3"
      id="Tc_aMdpUZPJz0Sx-tixg_9B9A_9_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1498000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_4RAgsMx24EK2s1KyQUUfIw_9_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1498000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jUc2Qklt9km5DQyW4xroXA"
      decimals="-3"
      id="Tc_HOFjP2SD4UWchT0x5OgR3A_10_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4168000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qRFzLdaSi0-L10DRxKGYew_10_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4168000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="3"
      id="Narr_RllsGhdPSEix9IwRs4jHNQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.395</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xzvAgXLdBEqBuxV_REQ7hg"
      decimals="-3"
      id="Tc_C5DeuFMfXkulO10Z88JqHw_11_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14543000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_GEy8QpXjKUymZEjCG1VKQg_11_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14543000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="INF"
      id="Tc_E83SUzL6uEm5r_-WDIiAxw_12_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-428940</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_QkB3GNq0m0mproc7jCYp9w"
      decimals="-3"
      id="Tc_d5FjRI7leUOd4SdMKqWk_Q_12_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19550000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_nnf2TER2D02DuQYgsXqzdA_12_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19550000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_A"
      decimals="INF"
      id="Tc_SyULfPVM6UCcIeHbECtT6g_13_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_a_0jSbIfO0uZCy2PpExn_A"
      decimals="-3"
      id="Tc_EQJBtC6M7UeSH6kPecM8zw_13_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg"
      decimals="INF"
      id="Tc_0BuFnRBSjEG7RC0r1Mvhsg_13_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-4465448</us-gaap:TreasuryStockShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_wBgFH-x9eUet6RG6wvfrzg"
      decimals="-3"
      id="Tc_hjJp-W0b90yyAV8KW-3nrA_13_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-103960000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_3ZMHZXUKbkKjuqWon5IuCQ"
      decimals="-3"
      id="Tc_19QsBAGgVk6fP-X2tuLCwA_13_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">320168000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_28u-wZbMN0ybX624baJDcw"
      decimals="-3"
      id="Tc_4R-U8sDBsEOj2FBHxGk8_Q_13_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">368685000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_M9KvFimHhkmIjU7Xe-zbKQ_13_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">585304000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA"
      decimals="-3"
      id="Tc_2y07w1K0Uk2gIafA-kIVTg_14_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150139000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ULnrvwtnxkKGCccaeiBTtw_14_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150139000</us-gaap:ProfitLoss>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ejq1fDLKfE2zYdVu-X7maw"
      decimals="-3"
      id="Tc_Y__R5xiI4k-JYvhsJqRDtg_15_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-515000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_srt_CumulativeEffectPeriodOfAdoptionAxis_srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember__WriG1u5eUelXYKaXjjxZQ"
      decimals="-3"
      id="Tc_kcqHWweeZkeGocKZTMCr8Q_15_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-515000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="INF"
      id="Tc_TJFS-fQQsEKbkBtalMbJQg_17_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">113731</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="-3"
      id="Tc_sRSbbdbUS0GJRu0h-wYdgw_17_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2811000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ"
      decimals="-3"
      id="Tc_AU6pZDbp4kaogDKXvZOtEw_17_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-667000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_EIz_u8Gni0SOU7bxIaa5zg_17_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2144000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="INF"
      id="Tc_wMX4n9rNyUWa7UZoSobsvQ_18_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">128889</fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="-3"
      id="Tc_OoYyfWGOk0icoxO-9bscUg_18_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3102000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ"
      decimals="-3"
      id="Tc_WhBbcfjxP0i15KL9xbtU-Q_18_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-1247000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_1bpzRM3Ho0iFb5GpPWwxEg_18_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1855000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="INF"
      id="Tc_XkT4b3-YV0yT1YKOdd7hQg_19_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-27724</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="-3"
      id="Tc_PxrBCADhMUeDS2i9zWXmtQ_19_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1076000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_znAX_BCCjkuL9ewHlD2rNg_19_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1076000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_dnDoHAJafkirLLgoE2sBtQ"
      decimals="-3"
      id="Tc_IZKLJwZE5kmSj095Ez_z9w_20_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4197000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_QsuRMzAim0CFqs5t5Ko2QQ_20_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4197000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="3"
      id="Narr_KKB9HhTkQ0WcO4W8BKXK5w"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.425</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_POfd7jK5t0KTMuRnczmzDA"
      decimals="-3"
      id="Tc_vWpyH7zqkEOYx-fEXRE0XQ_21_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15499000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_FNFX1_GqTEmnrzgqMJJV4g_21_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15499000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="INF"
      id="Tc_KbpfhP6aXEeoP7SNXb-0tQ_22_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-684634</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_jri6Da5J-0OTh7VXeSQU1w"
      decimals="-3"
      id="Tc_0y_xBFKBDk-AcQBBMW1yGA_22_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">30120000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_se4s_WY5MU2jnlJXWEUcog_22_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">30120000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg"
      decimals="INF"
      id="Tc_zq96UghXa0a_zP3de4Mkiw_23_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dBJk3uqBEk2txzyLF-liFg"
      decimals="-3"
      id="Tc_MMhw5mTaJU2XfXh9PxKcrg_23_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA"
      decimals="INF"
      id="Tc_I2zVVP_QD02XlGZQ0vwkUw_23_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-4935186</us-gaap:TreasuryStockShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_TQMoWBhPjEWwLKIWg18vKA"
      decimals="-3"
      id="Tc_Dmbuha1jhE2nfR7kcQgU-w_23_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-129243000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_rbFz2HkyIUmBi3TvgjLIUA"
      decimals="-3"
      id="Tc_iboNHXokCUaN2r4s1nV3-w_23_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">322451000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gvJg1FFo30G2CGat9dSB7A"
      decimals="-3"
      id="Tc_BzAGIdM-AkSAT4aCdX6Yfw_23_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">502810000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_YWignTN-rUGtNjWluDTAfw_23_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">696429000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ"
      decimals="-3"
      id="Tc__ycdS3BkgkiPnbpkSpTO0w_24_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">143348000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_rM4KKbr0YEegtJSm3UVnBw_24_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">143348000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="INF"
      id="Tc_Fg6G1OU_4USvRecLkjAY-Q_26_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">195724</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="-3"
      id="Tc_-uedQRok8U-wYHIvfx0Hww_26_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5399000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg"
      decimals="-3"
      id="Tc_M8ciIZRteUS-OVT08mpYIg_26_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">235000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_UqbzR8eP40mO7VCkHBhrhQ_26_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5634000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="INF"
      id="Tc_F0XhNrJWdEuh7l44xK-zsg_27_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">101360</fix:StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="-3"
      id="Tc_bXxdqtxEPEWsBs2BVQbZWQ_27_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2681000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg"
      decimals="-3"
      id="Tc_SUO4xl4O5kiWYnMF3vA-6g_27_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-473000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_ysGnkXm21ESGk04ArCfceQ_27_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2208000</fix:StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="INF"
      id="Tc_OJMnvL8i8ESK1CetNsuLAA_28_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-31413</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="-3"
      id="Tc_PkPbLmFzYEWrjuXxgStOcw_28_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2363000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_YnHxi2rKpUyChXj9yx7mtQ_28_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2363000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_YdCjEmgvbk6aWTIZxCA3Tg"
      decimals="-3"
      id="Tc_Qepv61-QcUCFCElLKWEhGQ_29_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4848000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_Kw6B1cou90y-euROsfXg6g_29_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4848000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Narr_EF7RuI1S3kKwF2hvrECrBw"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">0.48</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_U1QEcqiBq0WlvuU-K1aFSQ"
      decimals="-3"
      id="Tc_-e8I7HkKV0KE3rybA9ug6A_30_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17384000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_HrxEV4v_kUKymOEbeUZzfw_30_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17384000</us-gaap:DividendsCommonStockCash>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="INF"
      id="Tc_nm25PHyBrE-75zFCUFS1gw_31_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-362796</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_elCidgnTIU6ta4I02gH70A"
      decimals="-3"
      id="Tc_pok3qL14AkOWOH2YlypdKQ_31_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27054000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_57YLQ6RolE2mUA22MCd6rA_31_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27054000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow"
      decimals="INF"
      id="Tc_H2uo4vy0cUm41Z3Irwuifg_32_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">41123365</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_M6rPr0qH3Uu6y-5CDTM6ow"
      decimals="-3"
      id="Tc_MuJFjyHtpky0MswuqOcOCA_32_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">411000</us-gaap:StockholdersEquity>
    <us-gaap:TreasuryStockShares
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA"
      decimals="INF"
      id="Tc_2MNl8NVNcE29icXoqvpZdA_32_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">-5032311</us-gaap:TreasuryStockShares>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_TreasuryStockMember_mwv8ZtdRfky7Z5t7RW3giA"
      decimals="-3"
      id="Tc_Aq0O1aS7U0WlHfIhk_iPmA_32_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-150580000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_GDm_X5w_JkOWpnLGDap6pA"
      decimals="-3"
      id="Tc_LI4M2gKpAU2tB1F8LVbbnA_32_13"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">327061000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_nngfx7WNNUSuh314z2prEw"
      decimals="-3"
      id="Tc_9Be-XN54BEG0PFDUYF7tWA_32_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">628774000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_xYYapzcSGkeKI7dmGU57Mw_32_19"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">805666000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_asI97pcZzUOQeJ8ptooIOw_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">143348000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ziq0qfsmu0S0QdwVa2vXCQ_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150139000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_PI-VDGvsaU6HSUNZVUXDkA_5_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">114324000</us-gaap:ProfitLoss>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_1Ho0T1OxdUSis9ZKTECAUA_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">40505000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_1RV696KRNU-deEpKg_cztg_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">32698000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_6uRuFp1z30GgOp6tPGhPEw_7_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27082000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:Depreciation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc__Hy7DCW6HEymvwBSuuBEPw_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28439000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Q2Oa5u1BAUi0CRMNULgb3w_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27931000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_Vti5MLsMCUal8-gx2Uqh0A_8_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24490000</us-gaap:Depreciation>
    <fix:ChangeInRightOfUseAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_icZpjgFL0EiQ0PrUMRzCQQ_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17592000</fix:ChangeInRightOfUseAssets>
    <fix:ChangeInRightOfUseAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_s0-Gf7kZN0qrvXxmmIHpcg_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16692000</fix:ChangeInRightOfUseAssets>
    <fix:ChangeInRightOfUseAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_2uAM3HeygEC-ug8nJ_Qibw_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16887000</fix:ChangeInRightOfUseAssets>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_-4QmKLBh50azfWb7mjrAjg_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-1452000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_psvKSuDC9E2WiFia9ENfzg_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5253000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_cWclZWwpkkuQxjSueShQRQ_10_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2978000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_uxdpzEKdgEuwcOtK7YOIQg_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6902000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_HT250cb9wEyj_ORZgFeptw_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-7953000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_bQu9uWiwy0iVBKSWUM1ABA_11_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-4251000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_P9VbXe_1-EKckMzM4QHw9Q_12_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">538000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_atSje2OJRkiMIFGgFF-KJQ_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">544000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_6ByMuDRv5ESr_PpSmmz8Jw_12_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">387000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_KFB24f4LiUOXs3xlRpmsTg_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1540000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_7HuHnrqkUEuSIL9-Pfs3ew_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1445000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qoOh5cDFqEier6exrqQCHg_13_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1701000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_GfEwmEOXcESP8V06BagpUg_14_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-7820000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_imTTpg2EMUe_vfznCI1Orw_14_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-9119000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_aMYgzlKrS0KUi1rqYRppMg_14_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2991000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_6huBm7W980OudCjU23J2IA_15_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10593000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_5qBCxhN5-0-BqlzhUMNjAw_15_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6934000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_LgySlW2ry06rWDCup3wlqA_15_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5878000</us-gaap:ShareBasedCompensation>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_YNRRtvIcKECVXEpEsxy1rQ_18_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58046000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_OXf2CP0IVke8Dn6h0CXesw_18_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-38486000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qh-a3ScGXkel2rmlKIe2-A_18_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">49508000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_aEI5_znzYEi1_bX-65cdMA_19_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5651000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_kBpaF5Wxg0uW44SnfioQog_19_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1457000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_1-OpBrGJwEKl-3hrRRfgvQ_19_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-2366000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_3huyvLL91EmFFTmdO5f-qw_20_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8623000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_wqepONyia0y1oZiWQ5aq9g_20_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4855000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_8RWwRv4CUk-V1m7BivUjPQ_20_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15519000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_6-odtuVHE0C0iSM3AZzpyQ_21_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17271000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_7Hcz6frQEkaB5urgo9ox9A_21_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-2706000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_BOZgKRrX40yVbV03DT7adg_21_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4312000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_nt11-DH-o0WwbP0TJjGn4Q_22_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1174000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_vzNm-6-C8kKxQa1pkLopDw_22_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1373000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_spoNbxvl3ECMUvb1J8rGvw_22_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">735000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_M_TCTckSGUSbCBT21MOFvg_24_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4004000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_I0HdRo7fykefiobQhWybiw_24_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">11087000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_CfbwSL_Ot0-YIVMR1pyT6g_24_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31046000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_Gthqzr7YfU69ScWGCE8xYg_25_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">44620000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_tbrdOOyXT0qN0DbVu66jsA_25_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19434000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_3v6YRq9ZhUScebud7aic6Q_25_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4376000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_okhCMAtdFk2GkKz71bgTCw_26_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-14813000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_nDRVllBpn0yW9HulGRr4IA_26_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">808000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_XMXQS3_yUE-Wa_TJF6XBIg_26_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-14751000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_9wZyNn7hTUymekEGm1Jtdg_27_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">180151000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_0joCByxiokaDynJvstaOmQ_27_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">286510000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_iMfJ1wzQRU60uKF66x6bqA_27_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">142028000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_waBpcT7ci0ChIo3k-GOCmw_29_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22330000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_SMlyzVfrVkyMrlYFViF3JQ_29_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24131000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_K7vcJC_tjEK2wCb8Gl2CgQ_29_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31750000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_cNwKGz6TgUi5beeVI8AwHg_30_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3101000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_DQeuskFx-UOxLrnBEJmRkg_30_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2270000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_YQj1As1APUavW-hVvCy9cg_30_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2159000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromDivestitureOfBusinessesNetOfCashDivested
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_g1a_oEuvpkeImpxYPiOd0A_31_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1611000</us-gaap:ProceedsFromDivestitureOfBusinessesNetOfCashDivested>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_z0sY5P90k02fYfT0nHvMGg_32_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">227493000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_dSTHbF92zUSJZ7zLqwGqUg_32_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">185941000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_wT6okuS4GUq_uy4cvjk8Ng_32_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">196470000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_49DiYXAx5kqBPt0wN7V69Q_33_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-246722000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_b2f6CnJvrEKdLBlO860EUw_33_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-207802000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_r59A8KOxik6TPP8nd7VbwQ_33_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-224450000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLongTermLinesOfCredit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_1CMD2Y_YJ0qYAiLwOpz8Wg_35_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">275000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
    <us-gaap:ProceedsFromLongTermLinesOfCredit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_gLfJ6jf7hUqdZJodmgBwxA_35_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">268000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
    <us-gaap:ProceedsFromLongTermLinesOfCredit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_n4WoO-Jzq0u6x5Ek4v3OaA_35_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">356000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermLinesOfCredit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_IQBQ1Y9JwEmRY5XYyj4mOw_36_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">125000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermLinesOfCredit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_GI4-q0IGmEeIUQyak8V38g_36_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">226000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermLinesOfCredit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_s2iip69xfEmOpUlcj2P-QQ_36_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">228000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
    <us-gaap:RepaymentsOfSeniorDebt
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_zd-XTLogm0-08Uo7AgMdGw_37_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15000000</us-gaap:RepaymentsOfSeniorDebt>
    <us-gaap:RepaymentsOfSeniorDebt
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_gmiac-9ZiUigVsiDgzPQvg_37_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15000000</us-gaap:RepaymentsOfSeniorDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_mnM_ri_ZmkygBpk1fuurvg_38_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15696000</us-gaap:RepaymentsOfOtherDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_tlZmF374YUCS7owbJ0N_UA_38_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">46534000</us-gaap:RepaymentsOfOtherDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_Lhy4i-Cy30CafwQT9o781Q_38_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3784000</us-gaap:RepaymentsOfOtherDebt>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_hBFHCRiLeECEIofKAZqJtQ_39_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3805000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_J6y_zZuuRUSWZTmhCKsa5A_40_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1405000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_xEyDdInEOUmkxB6W1ZwhMg_41_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17384000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_i1zs6kGS3kqlN-zg0jdQnA_41_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15499000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_6huB5D7iN0WdP0CKvdTy2A_41_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14543000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_cbVpzNZAvU2FkHHemkiBlg_42_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27054000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_QYXwS6IFO0uYI5OPupOIEQ_42_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">30120000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_BVofffCBkUK42W6PVPtODw_42_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19550000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_NqQkF_8SO0GYvd4UA_VDYA_43_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2363000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_KouYEfiLokC0nrwZK2DhxQ_43_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1076000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_OjAqBw9go0eUZbXOJQjzBg_43_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1498000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_P5m28IztzkOkwyjjy__2OQ_44_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5634000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_QMA4KguhJEepke2gqH1jpw_44_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2144000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_3NXyIXnBdESag7wodBRhtA_44_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2350000</us-gaap:ProceedsFromStockOptionsExercised>
    <fix:DeferredAcquisitionPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_FkoHnLZMkUCRVKkjdBQjGA_45_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">400000</fix:DeferredAcquisitionPayments>
    <fix:DeferredAcquisitionPayments
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_lx0Q3mh_DkqAD_Hq7I2Fkg_45_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">650000</fix:DeferredAcquisitionPayments>
    <fix:DeferredAcquisitionPayments
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_Ed1RpMHzek67dzAWFRHgBA_45_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">637000</fix:DeferredAcquisitionPayments>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_qigwHHiGaEWYLAcE8kCfFA_46_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3481000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Nrs4t9W2X0GzCP0h9KykWw_46_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9865000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_SI7NpSN_Jk-o4GZuN6zZ1w_46_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1343000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_N4hGBSBHbUmuKtx7qLbI2w_47_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">70451000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Uble3xh9hku409uEvKRz9g_47_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-74600000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_0TjPvh7pxUGVjJHQe3DN0w_47_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">87590000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_Et5_lbCaoECecqS4bZma1A_48_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3880000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_oeq2lJRE8kix8IJt7wLrdQ_48_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4108000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_H40bKi2fwE6wW9lqyVtWOw_48_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5168000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_L5zF0FPitEGe0FSkatD7QQ_49_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54896000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_XeHrsrzO006F_mOT3CLRTQ_49_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">50788000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg"
      decimals="-3"
      id="Tc_gExdRz_C7ECjfV0fhlDoVA_49_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45620000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_OFOz874Hw0SiPm6FmMQJGA_50_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58776000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc__wGo-qpFn0SoU8lp3s-YNA_50_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54896000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_gmkkq0-UeEeWbXc-3lYi3w_50_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">50788000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:NatureOfOperations
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_EtNEv6nOW0mIQy6hsa33nQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 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 0pt 12pt 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. Approximately 46.3% of our consolidated 2021 revenue is attributable to installation of systems in newly constructed facilities, with the remaining 53.7% attributable to maintenance, repair and replacement services. The terms &#x201c;Comfort Systems,&#x201d; &#x201c;we,&#x201d; &#x201c;us,&#x201d; or the &#x201c;Company,&#x201d; refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.&lt;/p&gt;</us-gaap:NatureOfOperations>
    <fix:SalesRevenueServicesNetPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A"
      decimals="3"
      id="Narr_MAlVZA4j9kyt1eAcIzRbrg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.463</fix:SalesRevenueServicesNetPercentage>
    <fix:SalesRevenueServicesNetPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MaintenanceRepairAndReplacementServiceMember_Zgr028iIY0KoMb6WF6_NqQ"
      decimals="3"
      id="Narr_BFVZRESH1UqM4Ydctvo-CQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.537</fix:SalesRevenueServicesNetPercentage>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_vWgHGXoLm0eTkxHf237zzg">&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;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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Principles of Consolidation&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;These financial statements are prepared in accordance with accounting principles generally accepted in the United States of America. The accompanying consolidated financial statements include our accounts and those of our subsidiaries in which we have a controlling interest. All intercompany accounts and transactions have been eliminated. Certain amounts in prior periods may have been reclassified to conform to the current period presentation. The effects of the reclassifications were not material to the consolidated financial statements.&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 12pt 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 0pt 12pt 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, deferred tax assets, 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Cash Flow Information&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;We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents.&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 paid (in thousands) for:&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:77.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:60.87%;margin:0pt;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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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:10.55%;margin:0pt;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.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: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:60.87%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;margin:0pt;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.13%;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.14%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 6,052&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 7,684&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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.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; 8,817&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Income taxes, net of refunds&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 52,204&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 51,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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.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; 45,288&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Recently Adopted Accounting Pronouncements&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 December 2019, the FASB issued ASU No. 2019-12, &#x201c;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes.&#x201d; This standard simplifies the accounting for income taxes by eliminating certain exceptions to the guidance in Topic 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The standard also simplifies aspects of the accounting for franchise taxes and enacted changes in tax laws or rates and &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;clarifies the accounting for transactions that result in a step-up in the tax basis of goodwill. ASU No. 2019-12 is effective for fiscal years beginning after December 15, 2020 and interim periods within that year. We adopted ASU No. 2019-12 on January 1, 2021, and the impact was not material to our overall financial statements.&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;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="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;In March 2020, the FASB issued ASU No. 2020-04, &#x201c;Reference Rate Reform (Topic 848).&#x201d; The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 9) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We are currently evaluating the impact of the transition from LIBOR to alternative reference rates but do not expect a significant impact to our consolidated financial statements.&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 October 2021, the FASB issued ASU 2021-08, &#x201c;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.&#x201d; This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.&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 12pt 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="white-space:pre-wrap;"&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;/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;&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 the cost to cost measure of progress 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 measure of progress, 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="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;"&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 costs and estimated earnings in excess of billings. 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 &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;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 Other 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 non-residential 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 (e.g., 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;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;Starting in March 2020, we experienced negative impacts to our business due to the disruption caused by Coronavirus Disease 2019 (&#x201c;COVID-19&#x201d;). In March 2020, the World Health Organization categorized COVID-19 as a pandemic, and the President of the United States declared the COVID-19 outbreak a national emergency. The Company considered the impact of COVID-19 on the assumptions and estimates used to determine the results reported and asset valuations as of December 31, 2021 and December 31, 2020.&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 2020, we increased our loss rates and increased our specific reserves primarily due to the economic disruption caused by COVID-19, which was reflected in our bad debt expense in the prior year. This increase was primarily, but not exclusively, due to concern over collectability of receivables from customers more directly impacted by COVID-19. In 2021, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized.&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;Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.01%;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.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:5.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;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;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.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;white-space:nowrap;width:9.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:1.01%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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.01%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:0.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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.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:4.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:0.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:6.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:31.01%;margin:0pt;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;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:33.23%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:6.41%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:6.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;Other&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.05%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:5.6%;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;Other&lt;/b&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;text-align:center;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="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; 44&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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,709&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 3,192&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 3,400&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 315&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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,907&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Impact of new accounting standard&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 331&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding: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&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 695&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Bad debt expense (benefit)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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;"&gt; (970)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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;"&gt; (496)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; 14&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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;"&gt; (1,452)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"&gt; (10)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Deductions for uncollectible receivables written off, net of recoveries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (742)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (244)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (986)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (1,431)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (735)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.02%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (2,166)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Credit allowance of acquired receivables on the acquisition date&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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; 369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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; &#x2014;&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Reclass to other current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.96%;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:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.96%;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:4.64%;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;"&gt; (315)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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;"&gt; (315)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; 6,758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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; 58&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; 10,110&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 4,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 6,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 44&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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; 10,709&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;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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Inventories&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;Inventories consist of parts and supplies that we purchase and hold for use in the ordinary course of business and are stated at the lower of cost or net realizable value using the average-cost method.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Property and Equipment&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;Property and equipment are stated at cost, and depreciation is computed using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are capitalized and amortized over the lesser of the expected life of the lease or the estimated useful life of the asset.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Expenditures for repairs and maintenance are charged to expense when incurred. Expenditures for major renewals and betterments, which extend the useful lives of existing equipment, are capitalized and depreciated over the remaining useful life of the equipment. Upon retirement or disposition of property and equipment, the cost and related &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;accumulated depreciation are removed from the accounts and any resulting gain or loss is recognized in &#x201c;Gain on sale of assets&#x201d; in the Statement of Operations.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Recoverability of Goodwill and Identifiable Intangible Assets&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;Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.&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;When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.&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;&lt;span style="white-space:pre-wrap;"&gt;We perform our annual impairment testing as of October 1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   &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;In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.&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;We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies (&#x201c;public company approach&#x201d;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#x201c;EBITDA&#x201d;).&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;We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Long-Lived Assets&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;Long-lived assets are comprised principally of identifiable intangible assets, property and equipment, lease right-of-use assets and deferred tax assets. We periodically evaluate whether events and circumstances have occurred that indicate that the remaining balances of these assets may not be recoverable. We use estimates of future undiscounted cash flows, as well as other economic and business factors, to assess the recoverability of these assets.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;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 0pt 12pt 0pt;"&gt;We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.&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;&lt;i style="font-style:italic;"&gt;Contingent Consideration&lt;/i&gt;&#x2014;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.&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;Contingent Assets and Liabilities&lt;/i&gt;&#x2014;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. Acquisition date fair value estimates are &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Self-Insurance Liabilities&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;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 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. Our self-insurance arrangements are further discussed in Note&#160;13 &#x201c;Commitments and Contingencies.&#x201d;&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Warranty 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 0pt 11pt 0pt;"&gt;We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#x2019; warranties on equipment. We generally warrant labor for thirty days after servicing existing MEP systems. A reserve for warranty costs is estimated and recorded based upon the historical level of warranty claims and management&#x2019;s estimate of future costs.&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 12pt 36pt;"&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;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 states with varying 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 0pt 12pt 0pt;"&gt;Income taxes are provided for under the liability method, which takes into account differences between financial statement treatment and tax treatment of certain transactions. Deferred taxes are based on the difference between the financial reporting and tax basis of assets and liabilities. The deferred tax provision represents the change during the reporting period in the deferred tax assets and deferred tax liabilities, net of the effect of acquisitions and dispositions. Deferred tax assets include tax loss and credit carryforwards and are reduced by a valuation allowance if, based on available evidence, it is more-likely-than-not some portion or all of the deferred tax assets will not be realized.&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;We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.&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;Significant judgment is required in assessing the timing and amounts of deductible and taxable items. We record unrecognized tax benefits as liabilities when, despite our belief that our tax return positions are supportable, we believe that some portion of our uncertain tax positions may be disallowed. When facts and circumstances change, we adjust these liabilities through our provision for income taxes.&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;To the extent interest and penalties may be assessed by taxing authorities on any underpayment of income tax, such amounts are accrued and classified as a component in the provision for income taxes in our Consolidated Statements of Operations.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Concentrations of Credit Risk&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 services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for credit losses. We have a diverse customer base, with our top customer representing 9% of consolidated 2021 revenue.&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 12pt 36pt;"&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 0pt 12pt 0pt;"&gt;Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable, interest rate swaps and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. &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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Insurance Recovery&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 recorded a $4.8 million gain in the fourth quarter of 2019 due to insurance proceeds we received in the fourth quarter. Approximately $1.6 million of the gain was recorded as a reduction in SG&amp;amp;A, and the &lt;span style="-sec-ix-hidden:Hidden_ya8cO3-ldUOAIAIbX8MKow;"&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;remainder&lt;/span&gt;&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; was recorded as a reduction in Cost of Services expense.&#160;These proceeds related to recoverable costs that were primarily incurred prior to the fourth quarter in 2019.&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_iZ_rvjPzR0ygB5fmB-BNvA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Principles of Consolidation&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;These financial statements are prepared in accordance with accounting principles generally accepted in the United States of America. The accompanying consolidated financial statements include our accounts and those of our subsidiaries in which we have a controlling interest. All intercompany accounts and transactions have been eliminated. Certain amounts in prior periods may have been reclassified to conform to the current period presentation. The effects of the reclassifications were not material to the consolidated financial statements.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_ZXDotDP8qE2bHEXLkCa9DA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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, deferred tax assets, 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:CashAndCashEquivalentsPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_FtC-LRQEsUezxjUvG26BTQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Cash Flow Information&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;We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents.&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 paid (in thousands) for:&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:77.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:60.87%;margin:0pt;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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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:10.55%;margin:0pt;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.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: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:60.87%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;margin:0pt;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.13%;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.14%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 6,052&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 7,684&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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.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; 8,817&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Income taxes, net of refunds&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 52,204&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 51,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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.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; 45,288&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_BmKBBf5T30aKCRmfaBBCKQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Cash paid (in thousands) for:&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:77.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:60.87%;margin:0pt;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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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:10.55%;margin:0pt;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.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: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:60.87%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:36.45%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;margin:0pt;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.13%;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.14%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 6,052&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 7,684&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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.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; 8,817&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Income taxes, net of refunds&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 52,204&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 51,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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.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; 45,288&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:InterestPaidNet
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_8AkSR3W4qUivxpojjk_JJQ_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6052000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_MCTSVmcWKEKDy4IWfMtuMg_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7684000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_4LtmiQN8MUKdqX-KTYefPw_3_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8817000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_RURnxuaUjUOqSq-O0PLyzQ_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">52204000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_XRWxRp2z3E6Og1zGbILS0Q_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">51286000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_Y7jRf8yfH06534V33-P7BQ_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45288000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_zB7R88rT_UWvEBVdOP0pmw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:12pt 0pt 12pt 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;text-indent:36pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Recently Adopted Accounting Pronouncements&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 December 2019, the FASB issued ASU No. 2019-12, &#x201c;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes.&#x201d; This standard simplifies the accounting for income taxes by eliminating certain exceptions to the guidance in Topic 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The standard also simplifies aspects of the accounting for franchise taxes and enacted changes in tax laws or rates and &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;clarifies the accounting for transactions that result in a step-up in the tax basis of goodwill. ASU No. 2019-12 is effective for fiscal years beginning after December 15, 2020 and interim periods within that year. We adopted ASU No. 2019-12 on January 1, 2021, and the impact was not material to our overall financial statements.&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;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="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;In March 2020, the FASB issued ASU No. 2020-04, &#x201c;Reference Rate Reform (Topic 848).&#x201d; The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 9) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We are currently evaluating the impact of the transition from LIBOR to alternative reference rates but do not expect a significant impact to our consolidated financial statements.&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 October 2021, the FASB issued ASU 2021-08, &#x201c;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.&#x201d; This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.&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;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_Uu1xYVf2Ek6y443Z3PVGtg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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="white-space:pre-wrap;"&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;/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;&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 the cost to cost measure of progress 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 measure of progress, 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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_rTd0wsbqCkyI9wcR0oY45g">&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 costs and estimated earnings in excess of billings. 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 &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;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 Other 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 non-residential 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 (e.g., 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;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;Starting in March 2020, we experienced negative impacts to our business due to the disruption caused by Coronavirus Disease 2019 (&#x201c;COVID-19&#x201d;). In March 2020, the World Health Organization categorized COVID-19 as a pandemic, and the President of the United States declared the COVID-19 outbreak a national emergency. The Company considered the impact of COVID-19 on the assumptions and estimates used to determine the results reported and asset valuations as of December 31, 2021 and December 31, 2020.&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 2020, we increased our loss rates and increased our specific reserves primarily due to the economic disruption caused by COVID-19, which was reflected in our bad debt expense in the prior year. This increase was primarily, but not exclusively, due to concern over collectability of receivables from customers more directly impacted by COVID-19. In 2021, we collected some of these reserve amounts and reduced our assessed risk on collectability as business impacts relating to COVID-19 have stabilized.&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;Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.01%;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.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:5.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;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;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.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;white-space:nowrap;width:9.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:1.01%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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.01%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:0.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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.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:4.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:0.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:6.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:31.01%;margin:0pt;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;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:33.23%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:6.41%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:6.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;Other&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.05%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:5.6%;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;Other&lt;/b&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;text-align:center;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="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; 44&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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,709&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 3,192&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 3,400&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 315&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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,907&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Impact of new accounting standard&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 331&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding: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&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 695&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Bad debt expense (benefit)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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;"&gt; (970)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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;"&gt; (496)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; 14&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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;"&gt; (1,452)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"&gt; (10)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Deductions for uncollectible receivables written off, net of recoveries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (742)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (244)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (986)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (1,431)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (735)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.02%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (2,166)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Credit allowance of acquired receivables on the acquisition date&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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; 369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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; &#x2014;&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Reclass to other current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.96%;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:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.96%;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:4.64%;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;"&gt; (315)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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;"&gt; (315)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; 6,758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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; 58&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; 10,110&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 4,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 6,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 44&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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; 10,709&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:CreditLossFinancialInstrumentPolicyTextBlock>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_x4XxYUclGEOVySwxewR-nQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Activity in our allowance for credit losses consisted of the following (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:bottom;width:31.01%;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.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:5.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;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;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.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;white-space:nowrap;width:9.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:1.01%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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.01%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;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.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:6.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;td style="vertical-align:bottom;white-space:nowrap;width:0.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;white-space:nowrap;width:9.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:1.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.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:4.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:0.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:6.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:31.01%;margin:0pt;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="11" style="vertical-align:bottom;white-space:nowrap;width:33.23%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;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:33.23%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;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:33.42%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:6.41%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding: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="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:6.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;Other&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin: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:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:7.05%;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;Service&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:10.8%;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;Construction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:5.6%;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;Other&lt;/b&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;text-align:center;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="2" style="vertical-align:bottom;width:7.37%;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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; 44&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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,709&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 3,192&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 3,400&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 315&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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,907&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Impact of new accounting standard&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 310&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 331&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding: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&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 695&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Bad debt expense (benefit)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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;"&gt; (970)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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;"&gt; (496)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; 14&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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;"&gt; (1,452)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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,566&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,697&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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;"&gt; (10)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,253&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Deductions for uncollectible receivables written off, net of recoveries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (742)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (244)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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-size: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.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.01%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (986)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (1,431)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (735)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;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.02%;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="font-size: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.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:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt; (2,166)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Credit allowance of acquired receivables on the acquisition date&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.44%;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; 369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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,839&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.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="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.28%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.64%;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; &#x2014;&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.41%;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&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Reclass to other current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.97%;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:5.07%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;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:0.96%;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:6.08%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.03%;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="font-size: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.96%;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:4.64%;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;"&gt; (315)&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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;"&gt; (315)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:31.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:5.44%;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,294&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.57%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.51%;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:9.28%;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; 6,758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.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:9pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.07%;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; 58&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.01%;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="font-size: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.96%;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:6.41%;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; 10,110&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;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:0.96%;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:6.08%;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; 4,637&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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: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.51%;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:9.28%;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; 6,028&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;"&gt;&lt;span style="font-size: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.96%;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:4.64%;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; 44&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;text-align:right;margin:0pt;"&gt;&lt;span style="font-size: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.96%;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:6.41%;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; 10,709&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw"
      decimals="-3"
      id="Tc_IaaafnG82UG4TWpOhe_3pQ_4_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4637000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA"
      decimals="-3"
      id="Tc_b3iClY_XrUSTVH4MAp8SjA_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6028000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA"
      decimals="-3"
      id="Tc_p7ho8aN8P0iyGlUBNbmhmA_4_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">44000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_pn1Cyu8MekmVUOA5nMXDGg_4_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10709000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ServicesActivityMember_T-koUBf_YEe9irSQZvCyZg"
      decimals="-3"
      id="Tc_hbm2hD1D1UC3FqywOipz7w_4_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3192000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_HiNGDrv8wUuHEmHlOpGe9Q"
      decimals="-3"
      id="Tc_8w-wKNBabE6n1aYSjP7k_w_4_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3400000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2019_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_sk2YKkoNrUmLFi4ANUXtvQ"
      decimals="-3"
      id="Tc_aFMUGENdPkylDqFP1KV5sA_4_20"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">315000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc__0wPmmcaNU-TcxFSMQNJkQ_4_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6907000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg"
      decimals="-3"
      id="Tc_Ba08N5716U6z5cUMzabVmw_5_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">310000</us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal>
    <us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng"
      decimals="-3"
      id="Tc_tlRh6FCejU6DsWYLumizeA_5_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">331000</us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal>
    <us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg"
      decimals="-3"
      id="Tc_pwseS4a4W0Wgyi801V_9dA_5_20"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54000</us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal>
    <us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_pIxXqCSH90WUntcGkOtIzg_5_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">695000</us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ"
      decimals="-3"
      id="Tc_q5znwwpehUiiqWNmYXHppA_6_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-970000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ"
      decimals="-3"
      id="Tc_IwsYzqIWjkOinU6Is4gV3w_6_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-496000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_-la0iODr2kObdGoUPdvaIQ"
      decimals="-3"
      id="Tc_nyRnX66GY0uu_w34NTVH7g_6_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_wBDzJW-TskyZPaAeFkDKGw_6_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-1452000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg"
      decimals="-3"
      id="Tc_E2FgmKcQb06Ndn20wZaPkw_6_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2566000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng"
      decimals="-3"
      id="Tc_VVUKX8UWc0SOGWbcGnfQwA_6_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2697000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg"
      decimals="-3"
      id="Tc_pwrkbs_yIkeeEKdELwGTdQ_6_20"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-10000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_gHPiYo5N8EiEzCYSPzxCEw_6_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5253000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ"
      decimals="-3"
      id="Tc_OtFloGgpv0mnFrhHwoYJkQ_7_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">742000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ"
      decimals="-3"
      id="Tc_29tBWVawm0OLw6x8Ql_KAw_7_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">244000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_SPX4gRnhrUizfm15VHXg7w_7_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">986000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_NXuVy0REHEOvkPlYA4MNQg"
      decimals="-3"
      id="Tc_NP_Am-5S70G5ZgyZVcTlPQ_7_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1431000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng"
      decimals="-3"
      id="Tc_UjwYXv5VTE2drzBL9ezhNQ_7_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">735000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_oND49RWWekiIphl503Egqw_7_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2166000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <fix:AllowanceForDoubtfulAccountsReceivableAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_FeckdBbC9k-sSnWC6auvBQ"
      decimals="-3"
      id="Tc_NRzpPjKevUi9tQA3XJRbZQ_8_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">369000</fix:AllowanceForDoubtfulAccountsReceivableAcquired>
    <fix:AllowanceForDoubtfulAccountsReceivableAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_4LtOdjOxwEaD1Gg3CgcAJQ"
      decimals="-3"
      id="Tc_Lbgm6QYDUE2Y3B6fTgxaTA_8_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1470000</fix:AllowanceForDoubtfulAccountsReceivableAcquired>
    <fix:AllowanceForDoubtfulAccountsReceivableAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_f3t_qrYMOkyCjbF1yXWtvA_8_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1839000</fix:AllowanceForDoubtfulAccountsReceivableAcquired>
    <fix:AllowanceForDoubtfulAccountsReceivableAcquired
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_NgdKt0zJLk6GyYMWpK9Tng"
      decimals="-3"
      id="Tc_HkRlGHXTWUKIw543pjdKWA_8_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">335000</fix:AllowanceForDoubtfulAccountsReceivableAcquired>
    <fix:AllowanceForDoubtfulAccountsReceivableAcquired
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_8yXxlOSJVEm9zrZ-khxBbw_8_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">335000</fix:AllowanceForDoubtfulAccountsReceivableAcquired>
    <fix:ReclassificationOfAllowanceForCreditLosses
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_32_yiUrfFkmGBtSUCDJrFg"
      decimals="-3"
      id="Tc_UBCTjXvxP0--pbsVaf2lmg_9_20"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-315000</fix:ReclassificationOfAllowanceForCreditLosses>
    <fix:ReclassificationOfAllowanceForCreditLosses
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc__ILJH81paEK77K2bYgDZ_Q_9_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-315000</fix:ReclassificationOfAllowanceForCreditLosses>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ServicesActivityMember_mvqmfs3lMEKMBkhnUnvcqA"
      decimals="-3"
      id="Tc_hF2jDxYH3EqfrkHPg1AMeQ_10_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3294000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_ZQhsY7wyskqSaU2eSEUUDA"
      decimals="-3"
      id="Tc_pIgyIuAT_0iDmuoL24njWA_10_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6758000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2021_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_h5ywFeT7FUa235wPMCtwOQ"
      decimals="-3"
      id="Tc_UO57ES-yBUiSPmYAbainNA_10_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_CbfQOlEPmkOc9ukFiaRvRQ_10_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10110000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ServicesActivityMember_rQFo7p-49Um6y1yiL9mFPw"
      decimals="-3"
      id="Tc_RVqyEMScWkSL2cnAgNcQyg_10_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4637000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_fix_ConstructionActivitiesMember_yrSkSgdqLkGXdeGSg2PYfA"
      decimals="-3"
      id="Tc_CF8-PubZZkK__sJs7--_GQ_10_17"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6028000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_srt_ProductOrServiceAxis_us-gaap_ProductAndServiceOtherMember_JMAnjV775EKcC0zzwNUZUA"
      decimals="-3"
      id="Tc_LRvacesackyxExXvf0K76A_10_20"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">44000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_d2WxoTiNV0q0j8mC4XK7_w_10_23"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10709000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_BkvSUz571EGLoeZrakgBsw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Inventories&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;Inventories consist of parts and supplies that we purchase and hold for use in the ordinary course of business and are stated at the lower of cost or net realizable value using the average-cost method.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_Mz-6KHpA5kaMvHazgt4-_g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Property and Equipment&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;Property and equipment are stated at cost, and depreciation is computed using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are capitalized and amortized over the lesser of the expected life of the lease or the estimated useful life of the asset.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Expenditures for repairs and maintenance are charged to expense when incurred. Expenditures for major renewals and betterments, which extend the useful lives of existing equipment, are capitalized and depreciated over the remaining useful life of the equipment. Upon retirement or disposition of property and equipment, the cost and related &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;accumulated depreciation are removed from the accounts and any resulting gain or loss is recognized in &#x201c;Gain on sale of assets&#x201d; in the Statement of Operations.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_OwdqgWAA1EmNDXv-55Qybw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Recoverability of Goodwill and Identifiable Intangible Assets&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;Goodwill is the excess of purchase price over the fair value of the net assets of acquired businesses. We assess goodwill for impairment each year, and more frequently if circumstances suggest an impairment may have occurred.&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;When the carrying value of a given reporting unit exceeds its fair value, a goodwill impairment loss is recorded for this difference, not to exceed the carrying amount of goodwill. The requirements for assessing whether goodwill has been impaired involve market-based information. This information, and its use in assessing goodwill, entails some degree of subjective assessment.&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;&lt;span style="white-space:pre-wrap;"&gt;We perform our annual impairment testing as of October 1, and any impairment charges resulting from this process are reported in the fourth quarter. We segregate our operations into reporting units based on the degree of operating and financial independence of each unit and our related management of them. We perform our annual goodwill impairment testing at the reporting unit level. We perform a goodwill impairment review for each of our operating units, as we have determined that each of our operating units are reporting units.   &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;In the evaluation of goodwill for impairment, we have the option to first assess qualitative factors to determine whether the existence of events or circumstances lead to a determination that it is more likely than not that the fair value of one of our reporting units is greater than its carrying value. If, after completing such assessment, we determine it is more likely than not that the fair value of a reporting unit is greater than its carrying amount, then there is no need to perform any further testing. If we conclude otherwise, or if we elect to perform a quantitative assessment, then we calculate the fair value of the reporting unit and compare the fair value with the carrying value of the reporting unit.&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;We estimate the fair value of the reporting unit based on a market approach and an income approach, which utilizes discounted future cash flows. Assumptions critical to the fair value estimates under the discounted cash flow model include discount rates, cash flow projections, projected long-term growth rates and the determination of terminal values. The market approach utilizes market multiples of invested capital from comparable publicly traded companies (&#x201c;public company approach&#x201d;). The market multiples from invested capital include revenue, book equity plus debt and earnings before interest, provision for income taxes, depreciation and amortization (&#x201c;EBITDA&#x201d;).&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;We amortize identifiable intangible assets with finite lives over their useful lives. Changes in strategy and/or market condition may result in adjustments to recorded intangible asset balances or their useful lives.&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_BFRX_vCa10SEYbOr99xhuQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Long-Lived Assets&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;Long-lived assets are comprised principally of identifiable intangible assets, property and equipment, lease right-of-use assets and deferred tax assets. We periodically evaluate whether events and circumstances have occurred that indicate that the remaining balances of these assets may not be recoverable. We use estimates of future undiscounted cash flows, as well as other economic and business factors, to assess the recoverability of these assets.&lt;/p&gt;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationsPolicy
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_jKPJZSyZs0WqCH_tV6G2KQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;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 0pt 12pt 0pt;"&gt;We recognize assets acquired and liabilities assumed in business combinations, including contingent assets and liabilities, based on fair value estimates as of the date of acquisition.&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;&lt;i style="font-style:italic;"&gt;Contingent Consideration&lt;/i&gt;&#x2014;In certain acquisitions, we agree to pay additional amounts to sellers contingent upon achievement by the acquired businesses of certain predetermined profitability targets. We have recognized liabilities for these contingent obligations based on their estimated fair value at the date of acquisition with any differences between the acquisition date fair value and the ultimate settlement of the obligations being recognized in income in the period of the change.&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;Contingent Assets and Liabilities&lt;/i&gt;&#x2014;Assets and liabilities arising from contingencies are recognized at their acquisition date fair value when their respective fair values are determinable. Acquisition date fair value estimates are &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;revised as necessary if, and when, additional information regarding these contingencies becomes available to further define and quantify assets acquired and liabilities assumed.&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:SelfInsuranceReservePolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_dpxFLMc7DkO4TEZ6ALvblw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Self-Insurance Liabilities&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;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 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. Our self-insurance arrangements are further discussed in Note&#160;13 &#x201c;Commitments and Contingencies.&#x201d;&lt;/p&gt;</us-gaap:SelfInsuranceReservePolicyTextBlock>
    <us-gaap:StandardProductWarrantyPolicy
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_h9O9Qj6P9EaxShJKpktusA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Warranty 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 0pt 11pt 0pt;"&gt;We typically warrant labor for the first year after installation on new MEP systems that we build and install, and we pass through to the customer manufacturers&#x2019; warranties on equipment. We generally warrant labor for thirty days after servicing existing MEP systems. A reserve for warranty costs is estimated and recorded based upon the historical level of warranty claims and management&#x2019;s estimate of future costs.&lt;/p&gt;</us-gaap:StandardProductWarrantyPolicy>
    <fix:WarrantyPeriodOfLaborAfterServicing
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_Ll26G9iK8EOIJNxbcUkjrw">P30D</fix:WarrantyPeriodOfLaborAfterServicing>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_fnuMavyQ_kWeRflq0rt8aQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&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;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 states with varying 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 0pt 12pt 0pt;"&gt;Income taxes are provided for under the liability method, which takes into account differences between financial statement treatment and tax treatment of certain transactions. Deferred taxes are based on the difference between the financial reporting and tax basis of assets and liabilities. The deferred tax provision represents the change during the reporting period in the deferred tax assets and deferred tax liabilities, net of the effect of acquisitions and dispositions. Deferred tax assets include tax loss and credit carryforwards and are reduced by a valuation allowance if, based on available evidence, it is more-likely-than-not some portion or all of the deferred tax assets will not be realized.&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;We regularly evaluate valuation allowances established for deferred tax assets for which future realization is uncertain. In assessing the realizability of deferred tax assets, we must consider whether it is more-likely-than-not some portion, or all, of the deferred tax assets will not be realized. We consider all available evidence, both positive and negative, in determining whether a valuation allowance is required. Such evidence includes the scheduled reversal of deferred tax liabilities, projected future taxable income, taxable income in prior carryback years and tax planning strategies in making this assessment, and judgment is required in considering the relative weight of negative and positive evidence.&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;Significant judgment is required in assessing the timing and amounts of deductible and taxable items. We record unrecognized tax benefits as liabilities when, despite our belief that our tax return positions are supportable, we believe that some portion of our uncertain tax positions may be disallowed. When facts and circumstances change, we adjust these liabilities through our provision for income taxes.&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;To the extent interest and penalties may be assessed by taxing authorities on any underpayment of income tax, such amounts are accrued and classified as a component in the provision for income taxes in our Consolidated Statements of Operations.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_jn9OLUwH70W6ulRzcylXUg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Concentrations of Credit Risk&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 services in a broad range of geographic regions. Our credit risk primarily consists of receivables from a variety of customers including general contractors, property owners and developers, and commercial and industrial companies. We are subject to potential credit risk related to changes in business and economic factors &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;throughout the United States within the nonresidential construction industry. However, we are entitled to payment for work performed and have certain lien rights related to that work. Further, we believe that our contract acceptance, billing and collection policies are adequate to manage potential credit risk. We regularly review our accounts receivable and estimate an allowance for credit losses. We have a diverse customer base, with our top customer representing 9% of consolidated 2021 revenue.&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_ConcentrationRiskByBenchmarkAxis_fix_SalesRevenueMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_o4wGaQ2_jEOXo_B6UOh18A"
      decimals="2"
      id="Narr_mYc4Gb-MTUOfpKAVocEUGg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_7NYajPMwWk-bZB8mjRlAVg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&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 0pt 12pt 0pt;"&gt;Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable, interest rate swaps and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. &lt;/p&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <fix:InsuranceRecoveryPolicyPolicyTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_JzTAbX4IVkGxWYh2VT2PWw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Insurance Recovery&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 recorded a $4.8 million gain in the fourth quarter of 2019 due to insurance proceeds we received in the fourth quarter. Approximately $1.6 million of the gain was recorded as a reduction in SG&amp;amp;A, and the &lt;span style="-sec-ix-hidden:Hidden_ya8cO3-ldUOAIAIbX8MKow;"&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;remainder&lt;/span&gt;&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; was recorded as a reduction in Cost of Services expense.&#160;These proceeds related to recoverable costs that were primarily incurred prior to the fourth quarter in 2019.&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;&lt;/p&gt;</fix:InsuranceRecoveryPolicyPolicyTextBlock>
    <us-gaap:GainOnBusinessInterruptionInsuranceRecovery
      contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ"
      decimals="-5"
      id="Narr_WKSXSLqi90eYsiwADMsx-A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4800000</us-gaap:GainOnBusinessInterruptionInsuranceRecovery>
    <fix:GainRecordedAsReductionInSga
      contextRef="Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ"
      decimals="-5"
      id="Narr_sp0FZjEjvUibedbSeiSdLQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1600000</fix:GainRecordedAsReductionInSga>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_wd8rkzZQfU2n8E7XPMSNyw">&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;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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&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;/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;We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off&#x2011;&lt;span style="white-space:pre-wrap;"&gt;site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We 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;/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 fixed price agreements, we use the percentage of completion method of accounting under which contract revenue recognizable at any time during the life of a contract is determined by multiplying expected total contract revenue by the percentage of contract costs incurred at any time to total estimated contract costs. More specifically, as part of the negotiation and bidding process to obtain installation contracts, we estimate our contract costs, which include all direct materials, labor and subcontract costs and indirect costs related to contract performance, such as indirect labor, supplies, tools, repairs and depreciation costs. These contract costs are included in our results of operations under the caption &#x201c;Cost of Services.&#x201d; Then, as we perform under those contracts, we measure costs incurred, compare them to total estimated costs to complete the contract and recognize a corresponding proportion of contract revenue. Labor costs are considered to be incurred as the work is performed. Subcontractor labor is recognized as the work is performed. Non&#x2011;labor project costs consist of purchased equipment, prefabricated materials and other materials. Purchased equipment on our projects is substantially produced to job specifications, normally installed shortly after receipt and is a value-added element to our work. Prefabricated materials, such as ductwork and piping, are generally performed at our shops and recognized as contract costs when fabricated for the unique specifications of the job. Other materials costs are generally recorded when delivered to the work site. This measurement and comparison process requires updates to the estimate of total costs to complete the contract, and these updates may include subjective assessments and judgments.&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="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;"&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;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Selling, marketing and estimation costs incurred in relation to selling contracts are expensed as incurred.&#160;On rare occasions, we may incur significant expenses related to selling a contract that we only incurred because we sold that &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;contract.&#160;If this occurs, we capitalize that cost and amortize it on a percentage of completion basis over the life of the contract. We do not currently have any capitalized selling, marketing, or estimation costs in our Consolidated Balance Sheet and did not incur any impairment loss in the current year. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&#160; &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 on a percentage of completion basis over the life of the contract. 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;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;Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date percentage of completion of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. As a result, contract revenue recognized in our Consolidated Statement of Operations can and usually does differ from amounts that can be billed or invoiced to the customer at any point during the contract. Amounts by which cumulative contract revenue recognized on a contract as of a given date exceed cumulative billings and unbilled receivables to the customer under the contract are reflected as a current asset in our Consolidated Balance Sheet under the caption &#x201c;Costs and estimated earnings in excess of billings.&#x201d; Amounts by which cumulative billings to the customer under a contract as of a given date exceed cumulative contract revenue recognized on the contract are reflected as a current liability in our Consolidated Balance Sheet under the caption &#x201c;Billings in excess of costs and estimated earnings.&#x201d; &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;Contracts in progress are as follows (in thousands):&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:bottom;width:71.72%;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: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.16%;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: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.29%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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: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.16%;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: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.29%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.15%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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: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:71.72%;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;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.16%;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;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.05%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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:71.72%;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;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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.43%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.45%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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:71.72%;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;Costs incurred on contracts in progress&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 3,723,715&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 3,103,580&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Estimated earnings, net of losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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; 589,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 548,435&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Billings to date&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (4,527,801)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (3,813,171)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Unbilled accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"&gt; (61,881)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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 0pt 0.05pt 0pt;"&gt; (45,596)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Unbilled accounts receivable credit allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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: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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (715)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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: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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (784)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (277,396)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (207,536)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;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:10.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: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:2.16%;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:1.29%;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:10.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: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;width:1.06%;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:bottom;width:71.72%;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;Costs and estimated earnings in excess of billings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;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; 29,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Plus&#x2014;Costs and estimated earnings in excess of billings credit allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 84&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 79&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Billings in excess of costs and estimated earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (307,380)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (226,237)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (277,396)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (207,536)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 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;Accounts receivable include amounts billed to customers under retention or retainage provisions in construction contracts. Such provisions are standard in our industry and usually allow for a small portion of progress billings or the contract price to be withheld by the customer until after we have completed work on the project, typically for a period of six months. Based on our experience with similar contracts in recent years, the majority of our billings for such retention balances at each Balance Sheet date are finalized and collected within the subsequent year. Retention balances at December 31, 2021 and 2020 were $139.5 million and $124.1 million, respectively, and are included in accounts receivable.&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;Accounts payable at December 31, 2021 and 2020 included $24.0&#160;million and $22.2&#160;million of retainage under terms of contracts with subcontractors, respectively. The majority of the retention balances at each Balance Sheet date are finalized and paid within the subsequent year.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;"&gt;The percentage of completion method of accounting is also affected by changes in job performance, job conditions, and final contract settlements. These factors may result in revisions to estimated costs and, therefore, revenue. Such revisions are frequently based on further estimates and subjective assessments. The effects of these revisions are recognized in the period in which revisions are determined. When such revisions lead to a conclusion that a loss will be recognized on a contract, the full amount of the estimated ultimate loss is recognized in the period such conclusion is reached, regardless of the percentage of completion of the contract.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 0pt 0pt;"&gt;Revisions to project costs and conditions can give rise to change orders under which there is an agreement between the customer and us that the customer pays an additional or reduced contract price. Revisions can also result in claims we might make against the customer to recover project variances that have not been satisfactorily addressed through change orders with the customer. The amount of revenue associated with unapproved change orders and claims was immaterial for the year ended December 31, 2021.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:14pt 0pt 13.19pt 0pt;"&gt;Variations from estimated project costs could have a significant impact on our operating results, depending on project size, and the recoverability of the variation from change orders collected from customers.&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;We typically invoice our customers with payment terms of net due in 30 days.&#160;It is common in the construction industry for a contract to specify more lenient payment terms allowing the customer &lt;span style="-sec-ix-hidden:Hidden_gm00fDXIjUiWVD1l4A7FZg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;45&lt;/span&gt;&lt;/span&gt; to 60 days to make their payment.&#160;It is also common for the contract in the construction industry to specify that a general contractor is not required to submit payments to a subcontractor until it has received those funds from the owner or funding source.&#160;In most instances, we receive payment of our invoices between &lt;span style="-sec-ix-hidden:Hidden_riBRZn21y0eQAjcY6Boz0Q;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;30&lt;/span&gt;&lt;/span&gt; to 90 days of the date of the invoice. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;A performance obligation is a promise in a contract to transfer a distinct good or service to the customer. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;To determine the proper revenue recognition method for contracts, we evaluate whether two or more contracts should be combined and accounted for as one performance obligation and whether the combined or single contract should be accounted for as more than one performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate the combined or single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. For most of our contracts, the customer contracts with us to provide a significant service of integrating a complex set of tasks and components into a single project or capability (even if that single project results in the delivery of multiple units). Hence, the entire contract is accounted for as one performance obligation. Less commonly, however, we may promise to provide distinct goods or services within a contract, in which case we separate the contract into more than one performance obligation. If a contract is separated into more than one performance obligation, we allocate the total transaction price to each performance obligation in an amount based on the estimated relative standalone selling prices of the promised goods or services underlying each performance obligation. We infrequently sell standard products with observable standalone sales. In such cases, the observable standalone sales are used to determine the standalone selling price. More frequently, we sell a customized, customer-specific solution, and, in these cases, we typically use the expected cost plus a margin approach to estimate the standalone selling price of each performance obligation.&#160; &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="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;"&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.&#160;&#160;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 to deliver 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:9pt;margin:0pt;"&gt;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&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 the cost to cost measure of progress 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 measure of progress, 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 and subcontractors&#x2019; costs, other direct costs and an allocation of indirect costs. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;In our mechanical segment, 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.&#160;Similar to 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. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160; &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.&#160;Variable amounts can either increase or decrease the transaction price.&#160;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.&#160;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.&#160;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="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;"&gt;&lt;span style="background:#ffffff;"&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 determinatio&lt;/span&gt;n 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:9pt;margin:0pt;"&gt;&#160; &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).&#160;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 catchup basis. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160; &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 (e.g., the number and type of milestone events), technical requirements (e.g., 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 (e.g., 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:9pt;margin:0pt;"&gt;&#160; &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 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 catchup basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on a performance obligation's percentage of completion. 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:9pt;margin:0pt;"&gt;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;The Company typically does not incur any returns, refunds, or similar obligations after the completion of the performance obligation since any deficiencies are corrected during the course of the work or are included as a modification to revenue.&#160;The Company does offer an industry standard warranty on our work, which is most commonly for a one-year period.&#160;The vendors providing the equipment and materials are responsible for any failures in their product unless installed incorrectly.&#160;We include an estimated amount to cover estimated warranty expense in our Cost of &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Services and record a liability in our Consolidated Balance Sheet to cover our current estimated outstanding warranty obligations. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&#160; &#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;During the years ended December 31, 2021 and December 31, 2020, net revenue recognized from our performance obligations satisfied in previous periods was not material.&#160;&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;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;"&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:9pt;margin:0pt;"&gt;&#160; &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Our consolidated 2021 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 16 &#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;margin:0pt;"&gt;&lt;span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;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.8695679%;padding-left:0pt;padding-right:0pt;width:101.73%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:42.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: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:1.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: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:1.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: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:0.91%;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:8.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: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:1.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: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:5.16%;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:1.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: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:1.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: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:0.91%;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:8.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: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:1.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: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:5.16%;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:1.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: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:0.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: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:1.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: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:8.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: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:1.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: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:5.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: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:1.7%;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:bottom;width:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Mechanical Services&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,542,623&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 82.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,430,632&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 85.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,272,031&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 86.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Electrical Services&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 531,013&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 17.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 426,027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 14.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 343,246&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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: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.36%;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: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.36%;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: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.91%;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: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.35%;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: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.36%;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: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.16%;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: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.51%;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: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.36%;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: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.91%;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: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.36%;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: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.36%;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: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.16%;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: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.51%;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: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.53%;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: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.51%;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: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.36%;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: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.12%;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: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.21%;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: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.7%;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: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:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;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: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.36%;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: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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;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: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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Industrial&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,356,688&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 44.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,112,075&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 38.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 886,668&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 33.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Education&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 390,251&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 12.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 487,922&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 17.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 412,318&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 15.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Office Buildings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 308,799&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 319,426&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 348,640&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Healthcare&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 417,901&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 371,105&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 358,155&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Government&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 174,813&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 5.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 163,717&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 5.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 162,507&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 6.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Retail, Restaurants and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 213,386&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 239,541&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 8.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 248,083&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 9.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Multi-Family and Residential&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 112,779&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 86,799&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 104,693&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 4.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 99,019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 3.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 76,074&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 94,213&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 3.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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: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.36%;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: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.36%;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: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.91%;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: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.35%;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: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.36%;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: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.16%;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: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.51%;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: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.36%;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: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.91%;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: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.36%;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: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.36%;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: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.16%;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: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.51%;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: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.53%;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: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.51%;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: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.36%;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: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.12%;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: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.21%;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: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.7%;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: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:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;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: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.36%;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: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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;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: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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;New Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,421,784&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 46.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,333,739&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 46.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,201,122&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 45.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Existing Building Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 963,461&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 31.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 910,807&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 31.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 793,159&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 30.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Service Projects&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 278,582&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 9.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 241,402&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 8.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 231,228&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 8.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Service Calls, Maintenance and Monitoring&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 409,809&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 370,711&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 389,768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 14.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/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="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;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 payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.&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. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in other long-term liabilities in our Consolidated Balance Sheets.&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;The following table presents the changes in contract assets and contract liabilities (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;background:#ffff00;"&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:81.89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.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: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:9.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:2.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: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.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;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: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:9.23%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.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;width:49.36%;margin:0pt;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.27%;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;Year Ended December 31, &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 style="vertical-align:bottom;white-space:nowrap;width:1.25%;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:8pt;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:23.27%;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;Year Ended December 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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.27%;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;2021&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;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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;width:10.47%;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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;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:11.77%;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;Contract&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;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;width:10.49%;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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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;width:10.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;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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: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;width:11.77%;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;Liabilities&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;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;width:10.49%;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;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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;width:11.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;Liabilities&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;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:1.28%;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.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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.51%;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; 226,237&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;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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,736&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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; 166,918&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Change due to acquisitions / disposals&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:10pt;margin:0pt;"&gt;&lt;span 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.19%;margin:0pt;padding: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,356&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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:10pt;margin:0pt;"&gt;&lt;span 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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,523&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;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.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:9.23%;margin:0pt;padding: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,509&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.69%;margin:0pt;padding: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,885&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Change related to credit allowance&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:10pt;margin:0pt;"&gt;&lt;span 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.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;"&gt; (5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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:10.51%;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.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.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:9.23%;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; (79)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other changes in the period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;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.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; 927&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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%;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.51%;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,620&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;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.25%;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.23%;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; 6,456&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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; 19,434&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;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:1.28%;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:9.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; 29,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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:10.51%;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; 307,380&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;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.25%;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:9.23%;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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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:1.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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; 226,237&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;background:#ffff00;"&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 years ended December 31, 2021 and 2020, we recognized revenue of $207.6 million and $165.8 million related to our contract liabilities at January 1, 2021 and January 1, 2020, 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;We did not have any impairment losses recognized on our receivables or contract assets in 2021 and 2020.&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;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 December 31, 2021, the aggregate amount of the transaction price allocated to remaining performance obligations was $2.31 billion. The Company expects to recognize revenue on approximately 80-85% of the remaining performance obligations over the next &lt;span style="white-space:pre-wrap;"&gt;12 months&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;, with the remaining recognized thereafter. Our service maintenance agreements are generally &lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;one-year&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_kZ9mqrjuIkuTp1OYmXuhBQ;"&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;one&lt;/span&gt;&lt;/span&gt;&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:ScheduleOfContractsInProgressTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_w81ry2SdyEmAx5Zbd0NsHA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 13.19pt 0pt;"&gt;Contracts in progress are as follows (in thousands):&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:bottom;width:71.72%;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: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.16%;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: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.29%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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: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.16%;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: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.29%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.15%;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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: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:71.72%;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;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.16%;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;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.05%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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:71.72%;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;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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.43%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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.45%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 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:71.72%;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;Costs incurred on contracts in progress&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 3,723,715&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 3,103,580&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Estimated earnings, net of losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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; 589,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 548,435&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Billings to date&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (4,527,801)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (3,813,171)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Unbilled accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"&gt; (61,881)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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 0pt 0.05pt 0pt;"&gt; (45,596)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Less&#x2014;Unbilled accounts receivable credit allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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: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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (715)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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: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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (784)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (277,396)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;border-bottom:3px double #000000;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:10.15%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (207,536)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.29%;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:10.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: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:2.16%;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:1.29%;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:10.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: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;width:1.06%;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:bottom;width:71.72%;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;Costs and estimated earnings in excess of billings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.13%;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; 29,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Plus&#x2014;Costs and estimated earnings in excess of billings credit allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 84&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.29%;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:10.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:0.05pt 3pt 0.05pt 0pt;"&gt; 79&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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;Billings in excess of costs and estimated earnings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (307,380)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (226,237)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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:bottom;width:71.72%;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:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.13%;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:0.05pt 0pt 0.05pt 0pt;"&gt; (277,396)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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:1.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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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:0.05pt 0pt 0.05pt 0pt;"&gt; (207,536)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.06%;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;/table&gt;</fix:ScheduleOfContractsInProgressTableTextBlock>
    <us-gaap:ReceivablesLongTermContractsOrPrograms
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_f9p7ftkxMUWFTf6p-vczDA_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3723715000</us-gaap:ReceivablesLongTermContractsOrPrograms>
    <us-gaap:ReceivablesLongTermContractsOrPrograms
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_1857hmkEGUKFeX88QxHMig_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3103580000</us-gaap:ReceivablesLongTermContractsOrPrograms>
    <fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_iRcEeoOTXUeFNOM0PmuJrw_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">589286000</fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram>
    <fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_EjA5RRattUK5PtdgPNlYDw_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">548435000</fix:CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram>
    <fix:BilledContractReceivablesContractsInProgress
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Jb_aBUAu_UClvwRW2WPVwg_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4527801000</fix:BilledContractReceivablesContractsInProgress>
    <fix:BilledContractReceivablesContractsInProgress
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_77n7JvYAik2UDf_fOyxzZQ_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3813171000</fix:BilledContractReceivablesContractsInProgress>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_jjt_IQWniEKckJYAbxIEzA_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">61881000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_VeM1hAzVj0GfvyrUnIrmAg_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45596000</us-gaap:UnbilledContractsReceivable>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_KEBlOi5iBUOEAHRUUXO1vQ_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">715000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <fix:UnbilledAccountsReceivableAllowanceForCreditLoss
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_TLLNJoc7802g49R6ntP2Bg_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">784000</fix:UnbilledAccountsReceivableAllowanceForCreditLoss>
    <fix:ContractReceivablesContractsInProcessNetReceivableLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_p61O4ckxKU2wNUNJkxl6Gg_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-277396000</fix:ContractReceivablesContractsInProcessNetReceivableLiability>
    <fix:ContractReceivablesContractsInProcessNetReceivableLiability
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_2UUtnsHMB0W_xvoMbrm5XA_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-207536000</fix:ContractReceivablesContractsInProcessNetReceivableLiability>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_NWqEd0BfJ0-qPc9aldhllQ_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29900000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_cwK-MxKnbEWuIqmMYzJmtg_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18622000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <fix:CostsInExcessOfBillingsAllowanceForCreditLosses
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_JZcVy8o-WEeuY3Wjk2HEDA_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">84000</fix:CostsInExcessOfBillingsAllowanceForCreditLosses>
    <fix:CostsInExcessOfBillingsAllowanceForCreditLosses
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_S_8lbNGZsU6o1UEDAddRiw_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">79000</fix:CostsInExcessOfBillingsAllowanceForCreditLosses>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Byv_FYK-LE-oq4K1lg2-iQ_12_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">307380000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_kJIJ53xFwk66m1s_hIxOWw_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">226237000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <fix:ContractReceivablesContractsInProcessNetReceivableLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_H6r_ffnpDkSUZ11idQX4qQ_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-277396000</fix:ContractReceivablesContractsInProcessNetReceivableLiability>
    <fix:ContractReceivablesContractsInProcessNetReceivableLiability
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_9jth21jbiUC7TAAQLt1N1A_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-207536000</fix:ContractReceivablesContractsInProcessNetReceivableLiability>
    <fix:RetentionProvisionsConstructionContractsHoldingPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_PjgFav0qM0idFro_9GkR-A">P6M</fix:RetentionProvisionsConstructionContractsHoldingPeriod>
    <us-gaap:ConstructionContractorReceivableRetainage
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_pE3f136IgUSn0o6iTXKbPA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">139500000</us-gaap:ConstructionContractorReceivableRetainage>
    <us-gaap:ConstructionContractorReceivableRetainage
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_Lj0SoOtk3k-xY_JXnc8VVQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">124100000</us-gaap:ConstructionContractorReceivableRetainage>
    <fix:ConstructionContractorRetainagePayable
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_2IGZ2NmlMECXk-zP7z5Tlg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24000000.0</fix:ConstructionContractorRetainagePayable>
    <fix:ConstructionContractorRetainagePayable
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_9Ghod4dpUE2MqsIs5A22cw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22200000</fix:ConstructionContractorRetainagePayable>
    <us-gaap:RevenuePerformanceObligationDescriptionOfPaymentTerms
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_1rHATpx_cUq_nY7PNSrvDQ">We typically invoice our customers with payment terms of net due in 30 days</us-gaap:RevenuePerformanceObligationDescriptionOfPaymentTerms>
    <fix:ReceivableDueTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_LeaJMCGJlEejNLkutJIcRw">P30D</fix:ReceivableDueTerm>
    <fix:ReceivableDueTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ"
      id="Narr_WueoqtQHXkGxOS-jbQ_x9Q">P60D</fix:ReceivableDueTerm>
    <fix:PaymentsReceivedTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ"
      id="Narr_W83vN48F9ke6TcvABGjf6A">P90D</fix:PaymentsReceivedTerm>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_ymrLjpSkU0y5-qx4jhBRWg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Our consolidated 2021 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 16 &#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;margin:0pt;"&gt;&lt;span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;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.8695679%;padding-left:0pt;padding-right:0pt;width:101.73%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:42.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: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:1.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: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:1.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: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:0.91%;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:8.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: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:1.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: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:5.16%;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:1.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: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:1.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: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:0.91%;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:8.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: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:1.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: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:5.16%;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:1.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: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:0.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: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:1.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: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:8.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: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:1.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: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:5.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: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:1.7%;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:bottom;width:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Mechanical Services&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,542,623&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 82.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,430,632&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:5.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 85.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 2,272,031&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 86.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Electrical Services&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 531,013&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 17.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 426,027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 14.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 343,246&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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: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.36%;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: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.36%;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: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.91%;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: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.35%;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: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.36%;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: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.16%;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: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.51%;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: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.36%;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: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.91%;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: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.36%;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: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.36%;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: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.16%;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: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.51%;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: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.53%;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: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.51%;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: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.36%;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: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.12%;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: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.21%;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: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.7%;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: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:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;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: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.36%;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: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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;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: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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Industrial&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,356,688&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 44.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,112,075&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 38.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 886,668&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 33.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Education&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 390,251&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 12.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 487,922&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 17.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 412,318&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 15.8&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Office Buildings&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 308,799&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 10.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 319,426&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 11.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 348,640&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Healthcare&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 417,901&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 371,105&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 358,155&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 13.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Government&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 174,813&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 5.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 163,717&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 5.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 162,507&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 6.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Retail, Restaurants and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 213,386&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 6.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 239,541&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 8.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 248,083&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 9.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Multi-Family and Residential&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 112,779&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 86,799&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 104,693&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 4.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 99,019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 3.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 76,074&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 94,213&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 3.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:42.79%;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: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.36%;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: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.36%;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: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.91%;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: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.35%;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: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.36%;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: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.16%;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: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.51%;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: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.36%;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: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.91%;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: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.36%;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: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.36%;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: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.16%;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: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.51%;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: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.53%;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: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.51%;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: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.36%;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: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.12%;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: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.21%;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: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.7%;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: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:42.79%;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: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.36%;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: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.36%;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:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:52.77%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;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:42.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 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.36%;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: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.36%;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: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:15.79%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;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: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.36%;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: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:15.8%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0.05pt 0pt 0.05pt 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:0.53%;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: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.22%;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:0.05pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;New Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,421,784&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 46.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,333,739&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 46.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 1,201,122&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 45.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Existing Building Construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;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: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.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 963,461&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 31.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 910,807&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 31.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;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: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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 793,159&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 30.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Service Projects&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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-size: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.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 278,582&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 9.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 241,402&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 8.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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-size: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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 231,228&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.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:0.05pt 3pt 0.05pt 0pt;"&gt; 8.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Service Calls, Maintenance and Monitoring&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.36%;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: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.91%;border-bottom:1px solid #000000;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: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.35%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 409,809&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.91%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 370,711&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 13.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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: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.51%;border-bottom:1px solid #000000;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: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.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 389,768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 14.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:42.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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:9pt;text-align:right;margin:0.05pt 3pt 0.05pt 0pt;"&gt; 3,073,636&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.91%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,856,659&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;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-size: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.16%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0.05pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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-size: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.51%;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:0.05pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 2,615,277&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.12%;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-size: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.21%;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:0.05pt 3pt 0.05pt 0pt;"&gt; 100.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.7%;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;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ"
      decimals="-3"
      id="Tc_xmZcNvxXx0WfOIV5h8-jXw_3_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2542623000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_qxk9zgAFxUWJDoh4eoMmsQ"
      decimals="3"
      id="Tc_LmZKQ9GBU0W-UG3AQx3CqA_3_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.827</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ"
      decimals="-3"
      id="Tc_tc64EWn_GEq61Yi3ooc-Yg_3_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2430632000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_02eczxVHZECM8GiNH8NNFQ"
      decimals="3"
      id="Tc_bzWnVfgzGka7cZIzGAwsMw_3_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.851</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ"
      decimals="-3"
      id="Tc_H85dXnz8SU2sS4mXFUDaMA_3_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2272031000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_MechanicalServicesMember_SHue1UAP4UiiS_om2_nLZQ"
      decimals="3"
      id="Tc_DMlxRrybt02FalZKCUeTbg_3_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.869</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q"
      decimals="-3"
      id="Tc_ediBa0AjT0iIathuPbATkA_4_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">531013000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_7jQ3YQKHg0GB1cQaRlq85Q"
      decimals="3"
      id="Tc_MTPJtmO240SfBMxwKNS36w_4_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.173</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA"
      decimals="-3"
      id="Tc_80XR7qnnrEuhjVzuI4A2nA_4_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">426027000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_yLKmKnvrrES8yo2-cTiTgA"
      decimals="3"
      id="Tc_y45tnmasBkmiL3GIO3-8ww_4_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.149</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA"
      decimals="-3"
      id="Tc_vFyGU1W--0WOJELXO6hV4Q_4_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">343246000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ProductOrServiceAxis_fix_ElectricalServicesMember_PybvgoBJTEOXFBHKF6hUAA"
      decimals="3"
      id="Tc_Vn5oOgPVi0CSzY_mWv1Qtg_4_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.131</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_zVR0bmzQokGJjOpF2f9atQ_5_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3073636000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Tc_JFJiKZ3_iU-870ZvR89YaQ_5_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_bUhH-H1sOUOaNPJ3CYNV0Q_5_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2856659000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="3"
      id="Tc_ELr4GKQ5CkywTV6QautP6Q_5_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_VFQb4DIhVUC-EEhosRtmdg_5_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2615277000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="3"
      id="Tc_fGQ_INNDxkGaxBl-RjcDxA_5_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg"
      decimals="-3"
      id="Tc_OsHcprNnMUa0I_KsgwT7KQ_9_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1356688000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_-2GngxoUkkybWBtoWUCrgg"
      decimals="3"
      id="Tc_XnpnxFoCRE6rlHCri-F9Rg_9_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.441</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w"
      decimals="-3"
      id="Tc_rJTM_YLQfkeKgXeLxo_5CA_9_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1112075000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_FbbOvhcpg06dWj8UQ_Uz2w"
      decimals="3"
      id="Tc_j61RfXf6UEak7i8oujmEcw_9_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.389</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw"
      decimals="-3"
      id="Tc_MmRcI26PoEuOA_gPDBF0Ng_9_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">886668000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_IndustrialPropertyCustomerMember_OaHbspUryke_YsIaGBXDZw"
      decimals="3"
      id="Tc_cslHo53mrEiHkuCB3MU9zg_9_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.339</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ"
      decimals="-3"
      id="Tc_PJkQJy6b_UilrkrCzvZ-QQ_10_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">390251000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_EducationMember_INvF3NK_gk6vvnyK_A2buQ"
      decimals="3"
      id="Tc_PPgoV7K45EuZvTyHM24oYQ_10_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.127</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q"
      decimals="-3"
      id="Tc_UsQRDlLxwECJdvygI4dULQ_10_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">487922000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_EducationMember_WAWMJKF9BU-7Mzf9xaP75Q"
      decimals="3"
      id="Tc_-R7vID0bOkW8a8EdBiz3Tg_10_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.171</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA"
      decimals="-3"
      id="Tc_HuoLDxhNlUe70zmL1HIsug_10_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">412318000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_EducationMember_GxkkHZOSCU2juWBRaMr1KA"
      decimals="3"
      id="Tc_OLqa3_B-GUWaRYxKXEwXDw_10_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.158</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg"
      decimals="-3"
      id="Tc_ibBdIt3530uhn-3TC54rYw_11_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">308799000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_HNcUzAQTIkOn-xM4lDHjHg"
      decimals="3"
      id="Tc_NTH9Lh_yzEejAYYn1Ip9-g_11_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.101</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw"
      decimals="-3"
      id="Tc_h8nuevErsUCZxtHHoJwV8w_11_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">319426000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_Onf8NhyiIE2TYbwOtAX9pw"
      decimals="3"
      id="Tc_UgVSprZlEE-hDY-YI8uy4Q_11_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.112</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw"
      decimals="-3"
      id="Tc_aN_baQ4OSEWYrUxvLSYmBg_11_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">348640000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_OfficeBuildingCustomerMember_xnIQhw1V1UG-qan_hbRfdw"
      decimals="3"
      id="Tc_7DtDZ4jH-kqZ57EtfjUZJw_11_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.133</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw"
      decimals="-3"
      id="Tc_HSrNgEVgWEejqJcKHAw3Iw_12_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">417901000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_F0aTnWuE9EGIcl-Jp9GGlw"
      decimals="3"
      id="Tc_0tqeIqHb6E-5DHUsI_e2Fw_12_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.136</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg"
      decimals="-3"
      id="Tc_AO_RZwMimkecp4usDEuU6g_12_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">371105000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_TxTw6viyIE2F9Yf-CC2Adg"
      decimals="3"
      id="Tc_3W9AOZF7O0yYghnMEtl9Aw_12_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.130</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ"
      decimals="-3"
      id="Tc_z5Q1qQRJHEGEn59qJ_kmAQ_12_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">358155000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_HealthcareSectorCustomerMember_21S5b4cBBUyODOPO3pG2FQ"
      decimals="3"
      id="Tc_LTeu8VhzzUWS2m8uqZ-xAA_12_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.137</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA"
      decimals="-3"
      id="Tc_8Yh-AbbD4k-YN7P6bKvssA_13_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">174813000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_WHfrGV9zJUycMZuB0HkyOA"
      decimals="3"
      id="Tc_7l2Hgybpw0a3FRqrrwH0sA_13_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.057</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg"
      decimals="-3"
      id="Tc_J9_iKetysU6d-4SbKc1dqA_13_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">163717000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_5uRcyHDvsUacm99zbvuVQg"
      decimals="3"
      id="Tc_Uecgs2Ku9kKDCOMa2JCQFw_13_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.057</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ"
      decimals="-3"
      id="Tc_LgZ2SnCc-EiT9BzS0Dh8qQ_13_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">162507000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_GovernmentCustomerMember_1U2FklF4eE2U_KVdKljzGQ"
      decimals="3"
      id="Tc_yj_uzmEzLESiihiVCrcYvg_13_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.062</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ"
      decimals="-3"
      id="Tc_vCmG6gKmeUquPpqUJc0Z6w_14_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">213386000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_UXXCsAXX-0K_bN7MNDliPQ"
      decimals="3"
      id="Tc_VApqjnpkcUi2peSG7r0atQ_14_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.069</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA"
      decimals="-3"
      id="Tc_xLGhyVzuKE-O6W8s3xlBtA_14_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">239541000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_24ctbCGN-kOirTP-TQxVxA"
      decimals="3"
      id="Tc_tE0Xr5irqUy2nuEYaMN1JA_14_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.084</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww"
      decimals="-3"
      id="Tc_C40EDhtqGk6r-PK5G7b6dA_14_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">248083000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_RetailRestaurantsAndEntertainmentMember_HfT4H72oRU-OZNm5mSr6ww"
      decimals="3"
      id="Tc_dB7jMEnPO0GYdsnsjhq6hw_14_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.095</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ"
      decimals="-3"
      id="Tc_0vxFlxZ-R02IMMpj6yHjUg_15_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">112779000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_TB8-oO27Tki5VFJOZVLApQ"
      decimals="3"
      id="Tc_mtkSl5NHOk2PyaiRaI-VxQ_15_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.037</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw"
      decimals="-3"
      id="Tc_SiDFH-gi-kuw36g3jWlSTg_15_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">86799000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_0IOzPeFjpUK2iKjZ9jDnmw"
      decimals="3"
      id="Tc_VDWa4ssddkehR2rKvNHlcQ_15_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.030</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g"
      decimals="-3"
      id="Tc_AiUus9aKqEWML_2YP0UmaQ_15_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">104693000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_fix_MultiFamilyAndResidentialMember_XKQ8U7zvg0CIUxRV6a_0-g"
      decimals="3"
      id="Tc_9kkcDIqLjEmSeZtHaMGaug_15_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.040</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw"
      decimals="-3"
      id="Tc_51IGrNUkaUu_forvHB_kng_16_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">99019000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_HXWwalAJ70SyNYD9yMbaiw"
      decimals="3"
      id="Tc_Bwo9Ni-XEUqm_rzwPchiSQ_16_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.032</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg"
      decimals="-3"
      id="Tc_EDIAZ4Tvb0uosBKFSuzPTw_16_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">76074000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_-5KAbGSOCke_1QQ_ZPm7Pg"
      decimals="3"
      id="Tc_QcpzCxRhDUOt3yoXhPRkiA_16_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.027</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw"
      decimals="-3"
      id="Tc_prBWtQRk8Ui4EK3yZUjzxw_16_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">94213000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_MajorCustomersAxis_us-gaap_OtherCustomerMember_kwOWxbW9fUq_fahG2skafw"
      decimals="3"
      id="Tc_madKLnS-H0mQcoLe5HHzDw_16_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.036</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_daBKUYJAgkqFnLMMKL5_Jg_17_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3073636000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Tc_0ICz06m-OU6-iovTJ2njCA_17_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_voSwwbw9V0SeDZCeDV-8ew_17_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2856659000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="3"
      id="Tc_-H2kjJkcG0a7Pea6O_GLvw_17_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_R1qqSIaWrE6tT4gQ_jJWDw_17_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2615277000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="3"
      id="Tc_pGDGX88MuE2CvCubQeak_g_17_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g"
      decimals="-3"
      id="Tc_W5QkQ_sBZ0OqEAvvnVLIuw_21_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1421784000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_o0E8k2JW80KdlzTv6D9v3g"
      decimals="3"
      id="Tc_RhVJax4KDEWRG1Jzokwlow_21_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.463</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ"
      decimals="-3"
      id="Tc_w-SgysseJEG6v0Yya-lPtg_21_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1333739000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_JczQ51GfrkS0Cig3O6x1IQ"
      decimals="3"
      id="Tc_YRZIC8o8ekKAjInvx41hDg_21_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.467</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg"
      decimals="-3"
      id="Tc_T6EliCqdd0efCJieUC0Wsg_21_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1201122000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_NewConstructionMember_MQvATNX4E0eH8uYWvrKNIg"
      decimals="3"
      id="Tc_6h2-Hoc7HUi_XhaujurNXA_21_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.459</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg"
      decimals="-3"
      id="Tc_BWBSTzyqCEWBdOLjtnLILQ_22_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">963461000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_556GjPKr0U2xOYzDVXrZYg"
      decimals="3"
      id="Tc_tRSaanH3KU20zd8OCmRAYw_22_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.313</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw"
      decimals="-3"
      id="Tc_fE_EZDsHVk2xBsILc2dBJg_22_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">910807000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_-wLZaJkjaEODS9jtx-grBw"
      decimals="3"
      id="Tc_CQ-fL_iWAUmzR4RcqCeOsA_22_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.319</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA"
      decimals="-3"
      id="Tc_FQROr8r0EUWi0361EOppoQ_22_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">793159000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ExistingBuildingConstructionMember_OwFkqlkviU68GJMF2ZVMZA"
      decimals="3"
      id="Tc__yDCpRqJTEmi8MRlbuj6iQ_22_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.303</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA"
      decimals="-3"
      id="Tc_IAEVnFrHOEe88REBkpOfhg_23_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">278582000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_WNpVm3xneUGvFDS6JOQ4qA"
      decimals="3"
      id="Tc_OFdh4pLaaU2bne9OVoD_xg_23_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.091</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw"
      decimals="-3"
      id="Tc_w89XDWdDq06GH_qtb5MZPg_23_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">241402000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_6Q7biRMMyE2UAuKrweIWRw"
      decimals="3"
      id="Tc_D9hx-fIz8UyqzEnOwhDUzg_23_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.084</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ"
      decimals="-3"
      id="Tc_XTFtvevNLk6vO_OQt7GR9w_23_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">231228000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceProjectsMember_9shC1PzAkkSYBCEBC8TXfQ"
      decimals="3"
      id="Tc_-7CkQWZx1kWAMB5xyv8E1A_23_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.089</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ"
      decimals="-3"
      id="Tc_twwmq7OFCkqOhLYHkP5yOw_24_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">409809000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_yE8ry0UFIkirQCOXyOkEBQ"
      decimals="3"
      id="Tc_Ms9opw5clEavIOASHoXSow_24_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.133</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw"
      decimals="-3"
      id="Tc_FmJBdfVkokWfaS59Y3vF5w_24_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">370711000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_g55qJhJghESm8c2597H8Nw"
      decimals="3"
      id="Tc_klzrFfHygUeBEvTqUQnj1Q_24_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.130</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w"
      decimals="-3"
      id="Tc_0cFLBDeO-06kauGXsS-3cg_24_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">389768000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ServiceCallsMaintenanceAndMonitoringMember_Ty3T9drz40iwg6gEhakJ_w"
      decimals="3"
      id="Tc_Xnwi9-uSWE2LhLv6GJLLNQ_24_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.149</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_O-IJU8-EE0q9cnbZSkJnWQ_25_4"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3073636000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Tc_c6IPyNUr3kquPOEeW4gkJg_25_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_QLKJY5dIZEe6iZhqp9IT8g_25_10"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2856659000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="3"
      id="Tc_tleQWZ-J8Eq8JQLPsqegtA_25_12"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_QU1zFvdrNkuHStpMKCFVWg_25_16"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2615277000</us-gaap:Revenues>
    <fix:PercentageOfRevenueFromContractWithCustomer
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="3"
      id="Tc_Fq2R3h1ywk-UuHtYjz-grA_25_18"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.000</fix:PercentageOfRevenueFromContractWithCustomer>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_Ugk68rIoxkuycb2uTaOcqg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;background:#ffff00;"&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:81.89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.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: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:9.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:2.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: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.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;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: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:9.23%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.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;width:49.36%;margin:0pt;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.27%;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;Year Ended December 31, &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 style="vertical-align:bottom;white-space:nowrap;width:1.25%;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:8pt;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:23.27%;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;Year Ended December 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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.27%;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;2021&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;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="5" style="vertical-align:bottom;white-space:nowrap;width:24.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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;width:10.47%;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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;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:11.77%;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;Contract&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;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;width:10.49%;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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;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;width:10.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;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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: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;width:11.77%;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;Liabilities&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;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;width:10.49%;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;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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;width:11.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;Liabilities&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;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:1.28%;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.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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.51%;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; 226,237&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;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.23%;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,736&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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; 166,918&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Change due to acquisitions / disposals&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:10pt;margin:0pt;"&gt;&lt;span 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.19%;margin:0pt;padding: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,356&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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:10pt;margin:0pt;"&gt;&lt;span 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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,523&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;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.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:9.23%;margin:0pt;padding: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,509&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.69%;margin:0pt;padding: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,885&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Change related to credit allowance&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:10pt;margin:0pt;"&gt;&lt;span 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.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;"&gt; (5)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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:10.51%;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.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.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:9.23%;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; (79)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other changes in the period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.28%;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.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; 927&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="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%;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.51%;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,620&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;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.25%;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.23%;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; 6,456&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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.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; 19,434&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.36%;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:1.28%;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:9.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; 29,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.25%;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:10.51%;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; 307,380&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;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.25%;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:9.23%;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; 18,622&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;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:1.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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; 226,237&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_e0zNJrgH6kWm9x2DfMne_w_5_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18622000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_57Dmdnx-1k-tBoSQE7U5Gw_5_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">226237000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_em9JSmshgESdMtLne2fHUw_5_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2736000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_tq1VepyRFUubVlWveR0sJQ_5_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">166918000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_bLZADkm9nEyLHLi6tzMpTg_6_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10356000</us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_DAebPihIPUiaU5Z5ojLBig_6_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">36523000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_hcro1aYtxEShZxplFMyzlw_6_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9509000</us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_qZNix-yDE0q_RT2fiB-7hg_6_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">39885000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_T3o78UUBdE2ofOE77X518w_7_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-5000</us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal>
    <us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_VGMSvWQ6FU2cd47bHfPheA_7_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-79000</us-gaap:ContractWithCustomerReceivableCreditLossExpenseReversal>
    <fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_rnR0AzY2X0iyb2Ob0E-Eag_8_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">927000</fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_C1re5BvT2EK01pQqNGg9Ag_8_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">44620000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Bz1jB-O7AU6q_JCQV5bcKA_8_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6456000</fix:ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_mIPrqtE7dU67mb9Wf9H1MA_8_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19434000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_hh8H8GVxrkaxF5vP5RDbEQ_9_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29900000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_uQ_X9LTutkKwvJ-7CA9h8Q_9_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">307380000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_HItt8xmol0uxeykOOqiVOQ_9_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18622000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_igC0vA5_tEWQwTR7xMYxTw_9_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">226237000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_e9N49z5gvUmqd5CACeZGzw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">207600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_m1VZ78HdP0646vPIMiOfeg"
      decimals="-5"
      id="Narr_ghbVOBSFoUKD7m03BIlDFg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">165800000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA"
      decimals="-6"
      id="Narr_t0w8U3i5DUaBrIf8QdlDBw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2310000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_-2XKPZFsX0qjeBT0aHlolg"
      decimals="2"
      id="Narr_fE260qlEFUKd72yVUkXI9A"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.80</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_5OPwwdVo-Ueo1GzHPbh61A"
      decimals="2"
      id="Narr_SJw4EhfR4E-gcVrocmJHXg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.85</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="As_Of_12_31_2021_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_fix_cnst_2022-01-01_PQw3eKGO40apXCT0I5symA"
      id="Narr_0q0LXd9dT0uT73VPGohafg">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <fix:RenewableServiceMaintenanceAgreementsTerm
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_0P3FQPLpZES4PMA8mZGzCA">P1Y</fix:RenewableServiceMaintenanceAgreementsTerm>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_Pye6WTZydUafkFqtjTG_Aw">&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;4. Fair Value Measurements&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="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;&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;In April 2020, we entered into interest rate swap agreements to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $80.0 million as of December 31, 2021, and the termination date is September 30, 2022. &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 use derivative instruments to manage exposure to market risk,&#160;including&#160;interest rate risk. Unsettled amounts under our interest rate swaps&#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 Income Statement in &#x201c;Interest Expense.&#x201d; For the years ended December 31, 2021 and December 31, 2020, we recognized a net loss of $0.5 million and $0.3 million, respectively, related to our interest rate swaps. 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;text-indent:36pt;margin:0pt;"&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="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 0pt 12pt 0pt;"&gt;We classify and disclose assets and liabilities carried at fair value in one of the following three categories:&lt;/p&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:36pt;"/&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:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:36pt;"/&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 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;div style="margin-top:12pt;"/&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 December&#160;31, 2021 and 2020 (in thousands):&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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.78%;margin:0pt;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.84%;margin:0pt;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.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;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.31%;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; 58,776&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 58,776&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,643&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,643&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:58.78%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.78%;margin:0pt;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.84%;margin:0pt;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.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;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.31%;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; 54,896&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 54,896&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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,420&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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,420&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest rate swap liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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&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 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. The fair value for our interest rate swaps is based upon inputs corroborated by observable market data with similar tenors, which are considered Level 2 inputs. The Company&#x2019;s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company&#x2019;s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.&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;We have life insurance policies covering 85 employees with a combined face value of $62.3&#160;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 was $6.6&#160;million as of December&#160;31, 2021 and $5.4&#160;million as of December&#160;31, 2020. These assets are included in Other Noncurrent Assets 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 0pt 12pt 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 (e.g.,&#160;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 December 31, 2021, cash flows were discounted using a weighted average cost of capital ranging from 10.0% - 16.5%.&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;The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level&#160;3) (in thousands):&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:80.02%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:75.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:0.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: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.28%;margin:0pt;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:9.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:2.33%;margin:0pt;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.28%;margin:0pt;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.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: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.59%;margin:0pt;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;white-space:nowrap;width:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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:23.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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="2" style="vertical-align:bottom;white-space:nowrap;width:10.67%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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.1%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.64%;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:1.28%;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.38%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin: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:1.28%;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:8.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; 28,497&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin: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:75.65%;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:0.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.28%;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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,949&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.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; 16,715&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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:0.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.38%;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;(3,994)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;"&gt;(10,114)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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:0.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.28%;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:9.38%;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; (7,820)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.81%;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; (9,119)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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.28%;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:9.38%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.81%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size: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:12pt 0pt 0pt 0pt;"&gt;We measure certain assets at fair value on a nonrecurring basis. These assets are recognized at fair value when they are concluded to be other-than-temporarily impaired. No goodwill or other intangible asset impairments were recorded during the years ended December 31, 2021, 2020 and 2019. We did not recognize any other impairments on &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;those assets required to be measured at fair value on a nonrecurring basis. See Note 6 &#x201c;Goodwill and Identifiable Intangible Assets, Net&#x201d; for further discussion.  &lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <fix:DerivativeInstrumentNotionalAmount
      contextRef="As_Of_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_bsKJgzCU80yaQtj_xZcD1w"
      decimals="-5"
      id="Narr_KQyrIeoIVUmI38nsIWIftA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">80000000.0</fix:DerivativeInstrumentNotionalAmount>
    <fix:DerivativeNetLossOnDerivative
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_94MfVwXlx0qeB3SPPKcD5w"
      decimals="-5"
      id="Narr_JIBUyMZqa0ir25s6FgTErA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">500000</fix:DerivativeNetLossOnDerivative>
    <fix:DerivativeNetLossOnDerivative
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_k12gmJXdMk-MQufdpmrT3w"
      decimals="-5"
      id="Narr_OV-Sjd1pAkCztj5dykVFsg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">300000</fix:DerivativeNetLossOnDerivative>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_XYQBC2npcU6pN8iaw3MUmA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 December&#160;31, 2021 and 2020 (in thousands):&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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.78%;margin:0pt;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.84%;margin:0pt;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.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;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.31%;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; 58,776&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 58,776&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,643&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,643&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:58.78%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.84%;margin:0pt;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.14%;margin:0pt;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.31%;margin:0pt;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.78%;margin:0pt;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.84%;margin:0pt;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.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;Fair&#160;Value&#160;Measurements&#160;at&#160;December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.84%;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.45%;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.78%;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.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:1.14%;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.31%;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; 54,896&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 54,896&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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,420&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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,420&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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.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:1.14%;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.31%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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:1.14%;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.31%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest rate swap liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.31%;margin:0pt;padding: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&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_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_3Oz01fAJSEeZVas33dwxfQ"
      decimals="-3"
      id="Tc_zXv4Img0Qk-MndVVYC5Szw_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58776000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA"
      decimals="-3"
      id="Tc_8Y-li0ZPLUC7zp2beFRn7g_3_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">58776000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_oSqTtO5eJ0SKvvHXWsmlSw"
      decimals="-3"
      id="Tc_03-X4PfhukSERm-fp-wRJQ_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6643000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA"
      decimals="-3"
      id="Tc_tZ9XznDZNEedFEpg-hcKSA_4_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6643000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_LzyA2-ftwU-WoA6TssuP-A"
      decimals="-3"
      id="Tc_SxNSzWA6mEGV8AeN5p-HCQ_5_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34114000</fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate>
    <fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_Nd7WX_IbOkSBSL1aow50ZA"
      decimals="-3"
      id="Tc_SkJghqgGCUuRVuQy_sSAMw_5_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34114000</fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_X7yJX-mSrU-nteLMR5PKUg"
      decimals="-3"
      id="Tc_dE64Df2w1EmfBIMgwB2pZA_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54896000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg"
      decimals="-3"
      id="Tc_YNHGG2I-ZUOq2Ay-CR6p-A_9_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">54896000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_C5NktTUsJUW1VCxCkx_q7w"
      decimals="-3"
      id="Tc_p3GSQMw8BEmSIxb2n4sKXQ_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5420000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <us-gaap:CashSurrenderValueFairValueDisclosure
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg"
      decimals="-3"
      id="Tc_87j8FzDBFkatA3KVxW_uwQ_10_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5420000</us-gaap:CashSurrenderValueFairValueDisclosure>
    <fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_ctFv_0z9O0WR3nrjBcS6fg"
      decimals="-3"
      id="Tc_L2ecanKtHEGuM55iyMo3LQ_11_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">25979000</fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate>
    <fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_29hl6Mc1ZU-X-m9hwDhSTg"
      decimals="-3"
      id="Tc_150Wdvuj3EywEE6WyHAWdQ_11_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">25979000</fix:BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_1AoYVA5a0UeCQKCjTKsegw"
      decimals="-3"
      id="Tc_aHYXKjZyQUeyoLJdAvHtqA_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">42000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="As_Of_12_31_2020_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_FairValueByMeasurementBasisAxis_us-gaap_EstimateOfFairValueFairValueDisclosureMember_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_HedgingDesignationAxis_us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember_RlglHquN80C9VXs9bcyw7A"
      decimals="-3"
      id="Tc_lLxAabT2U0Kv-4HSlWd-lQ_12_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">42000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <fix:LifeInsuranceContractsNumberOfEmployeesCovered
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="INF"
      id="Narr_3S4n8WFn60ySzsOz25107g"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">85</fix:LifeInsuranceContractsNumberOfEmployeesCovered>
    <fix:LifeInsuranceContractsFaceAmount
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_wN3xTPtx-kaquTOGPM0JpQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">62300000</fix:LifeInsuranceContractsFaceAmount>
    <us-gaap:CashSurrenderValueOfLifeInsurance
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_zz9eQMR1m0Wk4jlXPcYSDA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6600000</us-gaap:CashSurrenderValueOfLifeInsurance>
    <us-gaap:CashSurrenderValueOfLifeInsurance
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_K5I5xlM4s0GARpPnLfD-Hg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5400000</us-gaap:CashSurrenderValueOfLifeInsurance>
    <fix:WeightedAverageCostOfCapital
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"
      decimals="3"
      id="Narr_QkJrLPfaF0Ohveo7_9t6aA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.100</fix:WeightedAverageCostOfCapital>
    <fix:WeightedAverageCostOfCapital
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_FfFBB0hx0k-XUQlJO8o5HQ"
      decimals="3"
      id="Narr_WORty49GXUqtWJGo4TkWXA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.165</fix:WeightedAverageCostOfCapital>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_3SP13_ojNEKLWzdujKX9YQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level&#160;3) (in thousands):&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:80.02%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:75.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:0.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: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.28%;margin:0pt;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:9.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:2.33%;margin:0pt;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.28%;margin:0pt;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.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: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.59%;margin:0pt;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;white-space:nowrap;width:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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:23.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.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 style="vertical-align:bottom;white-space:nowrap;width:0.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="2" style="vertical-align:bottom;white-space:nowrap;width:10.67%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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.1%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;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:75.65%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.64%;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:1.28%;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.38%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin: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:1.28%;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:8.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; 28,497&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin: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:75.65%;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:0.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.28%;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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,949&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.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; 16,715&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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:0.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.38%;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;(3,994)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;"&gt;(10,114)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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:0.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.28%;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:9.38%;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; (7,820)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.81%;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; (9,119)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:75.65%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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.28%;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:9.38%;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; 34,114&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.28%;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:8.81%;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; 25,979&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.59%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w"
      decimals="-3"
      id="Tc_mdJx34lv0kWq1gKGPI02AQ_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">25979000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2019_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_VwAzqWzhvECF_cO1GBaXDA"
      decimals="-3"
      id="Tc_ih1dBD6rR0quTRMmZAnXqw_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28497000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ"
      decimals="-3"
      id="Tc_v8tp8PYwO0OzuWkPo5regg_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19949000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q"
      decimals="-3"
      id="Tc_TaT_Zs2BE065uBZmVSY37Q_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16715000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ"
      decimals="-3"
      id="Tc_nQ0Bzm9lt0ORip6ibdznyg_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3994000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q"
      decimals="-3"
      id="Tc_6c01gBIiT0m-qsQXL6KYGQ_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10114000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember__nH4xudkzEuTGwj0YurKRQ"
      decimals="-3"
      id="Tc_egMYTNqLFEeOLasC_N_Usw_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7820000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_3bZns0_Fe0iELNcywgqb7Q"
      decimals="-3"
      id="Tc_Juhip5d_N0Oa6I3BFpY_fw_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9119000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2021_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_q2VBjuRXZk2QnwTez7qDmA"
      decimals="-3"
      id="Tc_H6vywT6fsEGIlI1wYIuwag_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34114000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_12_31_2020_us-gaap_FairValueByLiabilityClassAxis_fix_ContingentConsiderationObligationsMember_1hXH9pU5R0qcw9kivRDz5w"
      decimals="-3"
      id="Tc_83L39lxwaUOMx-1IJtOy2g_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">25979000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_yZXemmdOR0mhiQFn-HuCNg"
      decimals="-5"
      id="Narr_CjwhYzRvJkKE3DtixMP-vQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_x4A3QhhopkyA0HhaFU6mxw"
      decimals="-5"
      id="Narr_GNfjFcLWaUiBaBTgU157kw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsNonrecurringMember_ar_ag92PHEiDf08xJaI7aA"
      decimals="-5"
      id="Narr_kEkNwIXNR0mw12iPdh7GBA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_XbojOLgoCECu6YkSLjH4KQ">&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;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="font-style:italic;font-weight:bold;"&gt;Amteck Holdco LLC Acquisition&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 August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively &#x201c;Amteck&#x201d;). Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment. Revenue attributable to Amteck was $83.5 million for the five months from the acquisition 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;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;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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:78.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: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:18.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.39%;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.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-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:18.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-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:78.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="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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.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 3pt 0pt 0pt;"&gt; 107,355&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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="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:18.54%;margin:0pt;padding: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,409&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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 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:78.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="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.06%;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:18.54%;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; 12,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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; 137,664&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.39%;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.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:18.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.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 3pt 0pt 0pt;"&gt; 13,554&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 43,248&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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 3pt 0pt 0pt;"&gt; 3,422&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding: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,886&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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="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:18.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 3pt 0pt 0pt;"&gt; 55,076&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57,700&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Operating lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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 3pt 0pt 0pt;"&gt; 8,997&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (14,489)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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; (15,199)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Current maturities of long-term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.54%;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,860)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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; (1,115)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;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,889)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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; (785)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.06%;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:18.54%;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; (7,882)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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; 137,664&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;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 could not be individually identified and separately recognized. All of the goodwill recognized as a result of the Amteck acquisition is tax deductible.&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;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 &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="white-space:pre-wrap;"&gt;ranging from 14.0% - 18.5&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;%.  Estimated years of projected earnings generally follow the range of estimated remaining useful lives for each intangible asset class.&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 acquired intangible assets include the following (dollars in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:45.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:1.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;margin:0pt;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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;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;width:2.13%;margin:0pt;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;width: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: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:45.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;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;Valuation Method&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.98%;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.86%;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;Estimated Useful Life&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;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:2.13%;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: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:center;margin:0pt;"&gt;Estimated Fair Value&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:21.23%;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.98%;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;width:12.86%;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.5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.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;width:2.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width: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; 7,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;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.98%;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.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;23 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;margin:0pt;padding: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,600&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:21.23%;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.98%;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;width:12.86%;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;width:2.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;width:2.13%;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:12%;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; 37,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.13%;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:12%;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; 57,700&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;The contingent earn-out obligation is associated with the achievement of four earnings milestones over a 53-month period, and the range of each average present value estimated milestone payment is $0.1 million to $11.4 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. Cash flows were discounted using discount rates ranging from 14.8% - 15.2%, which we believe is appropriate and representative of a market participant assumption. Subsequent to the acquisition date, the contingent earn-out obligation is remeasured at fair value each reporting period. Changes in the estimated fair value of the contingent payments subsequent to the acquisition date are recognized in earnings.&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;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 December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, &#x201c;MEP Holdings&#x201d;) for a total preliminary purchase price of $57.3 million, which included $45.2 million funded on the closing date, $7.6 million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $21.1 million and a temporary staffing company based in Indiana with a total preliminary purchase price of $4.6 million, which are both reported in our mechanical services 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 December 1, 2021, we acquired Ivey Mechanical Company, LLC (&#x201c;Ivey&#x201d;) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $78.8 million, which included $64.1 million of cash paid on the closing date, $8.0 million in notes payable to former owners, a $0.4 million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services 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;In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $18.1 million, which is reported in our mechanical services 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;In the fourth quarter of 2020, we acquired all outstanding equity interests of Tennessee Electric Company, Inc. dba TEC Industrial Maintenance and Construction (&#x201c;TEC&#x201d;) for a total purchase price of $88.9 million, which included $73.0 million in cash, $7.0 million in notes payable to former owners, a $7.6 million contingent earn-out obligation and a $1.3 million working capital adjustment. As a result of the acquisition, TEC is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services 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 April 1, 2020, we consummated a merger through which TAS Energy Inc. (&#x201c;TAS&#x201d;) became a wholly owned subsidiary of the Company. The total purchase price was $169.5 million, of which $126.2 million was allocated to goodwill and identifiable intangible assets. The total purchase price included $105.9 million in cash, $40.5 million in working capital adjustment, $14.0 million in notes payable to former owners and a $9.1 million contingent earn-out obligation. TAS is headquartered in Houston, Texas, and is a leading engineering, design and construction provider of modular construction systems serving the technology, power and industrial sectors, and reports as a separate operating location in our mechanical services 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;We completed the acquisition of an electrical contractor in North Carolina in the first quarter of 2020 with a total purchase price of $41.6 million. This acquisition is reported in our electrical services 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 0pt 12pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&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.&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:Revenues
      contextRef="Duration_8_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_sM7XPaiI-Eukfog9MYendg"
      decimals="-5"
      id="Narr_WDMLYoGeT0iLq7_Hgl7Hbg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">83500000</us-gaap:Revenues>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA"
      id="Tb_kbZ7Y7Gc90OZamuCILrXJg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&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;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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:78.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: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:18.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.39%;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.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-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:18.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-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:78.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="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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.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 3pt 0pt 0pt;"&gt; 107,355&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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="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:18.54%;margin:0pt;padding: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,409&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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 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:78.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="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.06%;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:18.54%;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; 12,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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; 137,664&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.39%;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.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:18.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.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 3pt 0pt 0pt;"&gt; 13,554&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 43,248&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Other current assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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 3pt 0pt 0pt;"&gt; 3,422&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding: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,886&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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="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:18.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 3pt 0pt 0pt;"&gt; 55,076&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57,700&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Operating lease right-of-use asset&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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 3pt 0pt 0pt;"&gt; 8,997&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (14,489)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Billings in excess of costs and estimated earnings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.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; (15,199)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="white-space:pre-wrap;"&gt;  Current maturities of long-term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:middle;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:18.54%;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,860)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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; (1,115)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.54%;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,889)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.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:18.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; (785)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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="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.06%;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:18.54%;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; (7,882)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.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:middle;width:3.06%;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.54%;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; 137,664&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      decimals="-3"
      id="Tc_Rbv16YbFhkOSQKRwMU7i-w_2_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">107355000</us-gaap:PaymentsToAcquireBusinessesGross>
    <fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      decimals="-3"
      id="Tc_4oKddYgF5Em0iXocBd_-9Q_3_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7409000</fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      decimals="-3"
      id="Tc_3AtdR5QpjEGxKpBtn7h64w_4_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10000000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <fix:BusinessCombinationConsiderationTransferredContingentEarnOut
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      decimals="-3"
      id="Tc_vWws5UOf1Uadqtg4jLyJYQ_5_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12900000</fix:BusinessCombinationConsiderationTransferredContingentEarnOut>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      decimals="-3"
      id="Tc__4XuH6K0ZUaXpMC2ZQUctg_6_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">137664000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_nnpFqmYUg0SxB1pF4vbwPA_8_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">13554000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_AXmEwN9qDk-9pJxChPGhLw_9_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">43248000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_jxULzK4KJU6fugmRByjLoA_10_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3422000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc__syY_Rm0aU2DQYzF5WisqQ_11_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3886000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:Goodwill
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_okBC1XuDzU-j8SnC4S7wRQ_12_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">55076000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_RYx2pvspU0CfjAaxCEyt-w_13_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">57700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_wXnN93K770iKuFjQdGfs8A_14_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8997000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_sUflCfX3d0-Z_C7vhk5dAQ_15_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14489000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_vph-22E2UEmTtgK3nrCbTQ_16_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15199000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_BmhcBuc8l0W4clNQYtWfTA_17_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1860000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_mg1GTgiHjkump-ACYCs1WQ_18_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1115000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_Vxgf_ZyLfUa54ZnHH2qjxg_19_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6889000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_VVrV1bcNiESWAuMHk--gGw_20_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">785000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_4H7Nr8F8CUuJFqTMR6bh1w_21_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7882000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_iYgOqNyHGE-ZvI-89FeHgg_22_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">137664000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <fix:CashFlowDiscountRate
      contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_xDUpgl2P7kSc5svmw1j7Kg"
      decimals="2"
      id="Narr_kTLYNhzS5kGANrIei-omMw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.140</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputInceptionDiscountRateMember_Ugs_7TJxDUeE-udZq2scUQ"
      decimals="3"
      id="Narr_Mpopdo6eT0u4s4oN2Sk_eA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.185</fix:CashFlowDiscountRate>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA"
      id="Tb_IKcsOmFdLEm5FCFytGZhcw">&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;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:45.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:1.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;margin:0pt;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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;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;width:2.13%;margin:0pt;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;width: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: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:45.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;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;Valuation Method&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.98%;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.86%;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;Estimated Useful Life&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;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:2.13%;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: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:center;margin:0pt;"&gt;Estimated Fair Value&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:21.23%;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.98%;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;width:12.86%;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.5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.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;width:2.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width: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; 7,800&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;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.98%;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.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;23 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;margin:0pt;padding: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,600&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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:21.23%;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.98%;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;width:12.86%;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;width:2.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;width:2.13%;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:12%;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; 37,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:45.65%;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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:21.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:12.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.13%;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:12%;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; 57,700&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_zib6Ek_D2UW5TrcoW1eA1g"
      id="Narr_egaHMPfGAUSjIcgLLQnZBg">P1Y6M</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_htNTGfhxb02w2Z_8YXoSsQ"
      decimals="-3"
      id="Tc_1wdzDvH4fEyqYU_f3eUFAA_2_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZrPMMuESiUOJlowLOYivqg"
      id="Tc_KpaqP1Zs4UyUpl8ASQMxGw_3_4">P23Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_aC0lha81vEKDqtRcnn1P-w"
      decimals="-3"
      id="Tc_VPYcK_uWwE-6u4KLEM9JKg_3_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iBFZquizlEal0mRaYsizMA"
      id="Tc_RPbshQ7pfkGj_PpUuJ28aA_4_4">P9Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_BOzF4jca5EKl3Uj4BVXJRg"
      decimals="-3"
      id="Tc_q1ekFXwGIEakvPhvt1QoAg_4_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">37300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      decimals="-3"
      id="Tc_Z5c-Lcj_XEmWI0wMnFbofQ_5_7"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">57700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <fix:NumberOfMilestoneEarnings
      contextRef="As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ"
      id="Narr_Ni3FR_IECk--d6DPMUhxDQ">four</fix:NumberOfMilestoneEarnings>
    <fix:BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod
      contextRef="Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w"
      id="Narr_Hh-ds8XtpEWfhr5X-gG5yA">P53M</fix:BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="As_Of_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_nri7_FBwG0KcoVuDF89kpw"
      decimals="-5"
      id="Narr_3m1Xh2V7X06eUXK9YhLfog"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">100000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_z7mtxKiNHEyV3EiWBO35WQ"
      decimals="-5"
      id="Narr_70CBAYBa2UqxVMN2l7aOpg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">11400000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <fix:CashFlowDiscountRate
      contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_mdgYGEHA10S1t7vuh8iXuQ"
      decimals="3"
      id="Narr_zw6vYapB206WKE-_HYQj0g"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.148</fix:CashFlowDiscountRate>
    <fix:CashFlowDiscountRate
      contextRef="Duration_8_1_2021_To_8_1_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_-pccivjDLkiX5p9hMiZviQ"
      decimals="3"
      id="Narr_5-mforMZD0OQmJBR5c1fAw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.152</fix:CashFlowDiscountRate>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA"
      decimals="-5"
      id="Narr_kVNDeDP2ZkmIb1qL0G6KzQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">57300000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA"
      decimals="-5"
      id="Narr_RCC-gvpB-UuVLP8ZLH6-xA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45200000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA"
      decimals="-5"
      id="Narr_xkiKjjTO0Ein1tpCnGwRAw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7600000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorKentuckyMember_dHA321h0Ek2VAqce0UEuaw"
      decimals="-5"
      id="Narr_yqOYCxlTVEy974Tpy4IWGA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">21100000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorIndianaMember_x3t2Ln50aUSMmwiX7aetFg"
      decimals="-5"
      id="Narr_uDm0us3vCk6s7CTb3uNX0A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4600000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw"
      decimals="-5"
      id="Narr_cL7gK998IEe_NhxlldyztQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">78800000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw"
      decimals="-5"
      id="Narr_9HetMI0Pc06oUzvsMaGLPQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">64100000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw"
      decimals="-5"
      id="Narr_9mnaZfu2t0Wx9uVxnEp8IA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8000000.0</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredOther1
      contextRef="Duration_12_1_2021_To_12_1_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_fvloi7RzmUa11XLKo5tSyw"
      decimals="-5"
      id="Narr_V6JNM6txPE2_UidrZH056Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">400000</us-gaap:BusinessCombinationConsiderationTransferredOther1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_1_1_2021_To_3_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MechanicalContractorUtahMember_wlDa3Mr6o0GiEpfXtbLe6w"
      decimals="-5"
      id="Narr_ppyuoONxcU2mtuwEPwQBtw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18100000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g"
      decimals="-5"
      id="Narr_XeHxWkXYhUySyfXdNnv2LA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">88900000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g"
      decimals="-5"
      id="Narr_eSabQepAhk6VbhT_QBpE8w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">73000000.0</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g"
      decimals="-5"
      id="Narr_elfx2qiuR0iV8uQopgKv5A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7000000.0</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <fix:ContingentEarnOutObligationToAcquireBusiness
      contextRef="As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_9Cm74uBn102W9O3QmvG5gQ"
      decimals="-5"
      id="Narr_Oaob1JyJAU-l9621NbI_hw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7600000</fix:ContingentEarnOutObligationToAcquireBusiness>
    <fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="Duration_10_1_2020_To_12_31_2020_us-gaap_BusinessAcquisitionAxis_fix_TECIndustrialConstructionAndMaintenanceMember_yjUXj8e34kyIitTjZCwx2g"
      decimals="-5"
      id="Narr_GrJJ9qFkxk6aryNrWBxbJw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1300000</fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"
      decimals="-5"
      id="Narr_xwoRSYYFUUuIEOjemJ9fcw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">169500000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill
      contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"
      decimals="-5"
      id="Narr_nxHl1BYySk2lqYpv6mdDwg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">126200000</fix:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"
      decimals="-5"
      id="Narr_TKj181WCbUWB9JJ2gMostg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">105900000</us-gaap:PaymentsToAcquireBusinessesGross>
    <fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment
      contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"
      decimals="-5"
      id="Narr_TN1MdcQ--U2Nmwj64TvwXw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">40500000</fix:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_4_1_2020_To_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_riCSworjyUa-k9in_QKejQ"
      decimals="-5"
      id="Narr_j5zsAQWQl0GxcKZaK4Vpzg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14000000.0</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <fix:ContingentEarnOutObligationToAcquireBusiness
      contextRef="As_Of_4_1_2020_us-gaap_BusinessAcquisitionAxis_fix_TasEnergyIncMember_TH6lFYVDIE6sBs8j3Ld5Og"
      decimals="-5"
      id="Narr_UihhKky_Y0yLHMSotILfmw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9100000</fix:ContingentEarnOutObligationToAcquireBusiness>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_1_1_2020_To_3_31_2020_us-gaap_BusinessAcquisitionAxis_fix_ElectricalContractorNorthCarolinaMember_S1phPGY1LUaxPOfBYtNHrw"
      decimals="-5"
      id="Narr_YrxcRld6ykqOjsy1-WLTPQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">41600000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_1SdbAIFRFUiaVbfG53AymQ">&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;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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&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 0pt 12pt 0pt;"&gt;The changes in the carrying amount of goodwill are as follows (in thousands):&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.0710907%;padding-left:0pt;padding-right:0pt;width:100.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:13.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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.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;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:1.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:8.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:57.28%;margin:0pt;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:1.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-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:14.9%;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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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-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:13.47%;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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.57%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;margin:0pt;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:1.69%;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.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;Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;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.3%;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; 234,660&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 97,787&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;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.51%;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; 332,447&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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; 72,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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; 59,157&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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; 131,945&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.3%;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; 307,448&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:11.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; 156,944&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;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.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:8.51%;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; 464,392&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.3%;margin:0pt;padding: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,771&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 74,951&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.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:8.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 127,722&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Impact of segment reorganization&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;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:13.3%;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; 1,101&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.5%;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.97%;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; (1,101)&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;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.05%;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:8.51%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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; 361,320&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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; 230,794&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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; 592,114&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;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size: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:12pt 0pt 12pt 0pt;"&gt;The aggregate goodwill balance as of December 31, 2021 and 2020 includes $116.6 million of accumulated impairment charges, all of which relate to the mechanical services segment. &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;We perform our annual impairment testing on October&#160;1, or more frequently, if events and circumstances indicate impairment may have occurred. As discussed in Note&#160;2, &#x201c;Summary of Significant Accounting Policies and Estimates,&#x201d; we have the option to first perform a qualitative assessment to determine whether it is more likely than not that the fair value of the reporting unit is less than the carrying value.&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;During our annual impairment testing on October 1, 2021, we performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally, we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by 32%. As a result of the reporting unit&#x2019;s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of December 31, 2021, the Texas electrical operation had a goodwill balance of $96.8 million.&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;For the years ended December 31, 2021, 2020 and 2019, no impairment of our goodwill was recorded.&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;There are significant inherent uncertainties and management judgment involved in estimating the fair value of each reporting unit. While we believe we have made reasonable estimates and assumptions to estimate the fair value of our reporting units, it is possible that a material change could occur. If actual results are not consistent with our current estimates and assumptions, or the current economic outlook worsens, goodwill impairment charges may be recorded 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 12pt 36pt;"&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 0pt 12pt 0pt;"&gt;Identifiable intangible assets consist of the following (dollars in thousands):&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:82%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.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:2.01%;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:20.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;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:9.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;white-space:nowrap;width:2.01%;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.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:2.01%;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:9.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;white-space:nowrap;width:2.01%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.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="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.01%;margin:0pt;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:20.44%;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;Weighted-Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;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;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;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;December 31, 2020&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:24.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="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.01%;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:20.44%;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;Remaining Useful Lives&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.8%;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;Gross Book&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.73%;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;Accumulated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.8%;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;Gross Book&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.73%;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;Accumulated&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:24.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="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.01%;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:20.44%;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;in Years&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Amortization&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Amortization&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:24.42%;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.01%;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:20.44%;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;7.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0pt 0pt;"&gt; 330,572&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (130,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0pt 0pt;"&gt; 255,692&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (103,919)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;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:20.44%;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.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;margin:0pt;padding: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,300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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:10.47%;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,091)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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:10.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (12,600)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:20.44%;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;19.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 114,795&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (22,697)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 91,495&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (18,661)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;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; 477,667&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.47%;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;"&gt; (172,886)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;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; 366,987&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.47%;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;"&gt; (135,180)&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 0pt 12pt 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 0pt 12pt 0pt;"&gt;The amounts attributable to customer relationships and tradenames are amortized to &#x201c;Selling, General and Administrative Expenses&#x201d; based upon the estimated consumption of their economic benefits, or a straight-line method over periods from &lt;span style="-sec-ix-hidden:Hidden_CcfO-HB-okeWU5MqGAiZHQ;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;one&lt;/span&gt;&lt;/span&gt; to twenty-five years if the pattern of economic benefit cannot otherwise be reliably estimated. The amounts attributable to backlog are being amortized to &#x201c;Cost of Services&#x201d; on a proportionate method over the remaining backlog period. Amortization expense for the years ended December&#160;31, 2021, 2020 and 2019 was $40.5&#160;million, $32.7&#160;million and $27.1 million, respectively.&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&#160;31, 2021, future amortization expense of identifiable intangible assets was as follows (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.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:2.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.62%;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: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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;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.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;background:#cceeff;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 46,505&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 34,532&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 32,343&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 30,156&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;margin:0pt;padding: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,312&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12%;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; 131,933&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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:12%;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; 304,781&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_MHSs9RtepU62_8G3X0ALbA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The changes in the carrying amount of goodwill are as follows (in thousands):&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.0710907%;padding-left:0pt;padding-right:0pt;width:100.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:13.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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.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;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:1.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:8.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:57.28%;margin:0pt;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:1.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-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:14.9%;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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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-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:13.47%;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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.57%;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;margin:0pt;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:1.69%;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.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;Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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.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;Segment&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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:9.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;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;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.3%;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; 234,660&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 97,787&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;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.51%;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; 332,447&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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; 72,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.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; 59,157&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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; 131,945&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.3%;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; 307,448&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:11.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; 156,944&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;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.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:8.51%;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; 464,392&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.3%;margin:0pt;padding: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,771&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 74,951&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.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:8.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 127,722&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Impact of segment reorganization&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.6%;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:13.3%;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; 1,101&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.5%;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.97%;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; (1,101)&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;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.05%;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:8.51%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.28%;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, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.6%;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.3%;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; 361,320&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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.97%;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; 230,794&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;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.05%;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:8.51%;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; 592,114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_pk_-pvFBPEC-kpLb5ViLYQ"
      decimals="-3"
      id="Tc_ckmy5IhW3kOjw2LjLdWcbw_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">234660000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2019_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_4ZFN5dJoIUemxttzkM3voQ"
      decimals="-3"
      id="Tc_a0CJlnKdV0aI4yBgLnneLw_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">97787000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_pXTgereX9UuinkHV73hvwQ_3_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">332447000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_jEVx-uqoe0awJkaSi1dcEw"
      decimals="-3"
      id="Tc_blUp9y1vg0-BHxXd2QPMuA_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">72788000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_O3vrB75OAUChrN8BNgQyHw"
      decimals="-3"
      id="Tc_0GhhGXnV2U-KjO75ZciWCg_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">59157000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_0abDs7P5HECKziCSxyZtfw_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">131945000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg"
      decimals="-3"
      id="Tc_Zdga19kCI0WLoMUOuGLdQw_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">307448000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_ciNp9JVhz0SqLbz9bc_Cog"
      decimals="-3"
      id="Tc_QdiqskfO4kyyL1CtqUF7Hw_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">156944000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_ArnZWQLfcEWtYs67rBGQWw_5_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">464392000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA"
      decimals="-3"
      id="Tc_aPWhUpW2x0mrTFxMfy6hzQ_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">52771000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA"
      decimals="-3"
      id="Tc_-l9iu371kEWxeF1eNEzqPg_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">74951000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_vMTqxUNRRUSFYlOiR4kY7Q_6_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">127722000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillOtherIncreaseDecrease
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_exRsaGNYtk-Q6OVmzO63OA"
      decimals="-3"
      id="Tc_ghl7vX-uj0e3ICZJOvtEzA_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1101000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillOtherIncreaseDecrease
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_De8dytZdykaLA2CGR227hA"
      decimals="-3"
      id="Tc_-UyeJzYjV0mOIo1qkAbo8g_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-1101000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ"
      decimals="-3"
      id="Tc_L2GeRea3h0OtBFM_RZQwGg_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">361320000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesIndustryMember_NWGbM_25nk64LhchArxZng"
      decimals="-3"
      id="Tc_tyKILbTfgUqjrHiOGxSHXQ_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">230794000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_8S2Nbe1ayU29ChCgypqjIA_8_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">592114000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairedAccumulatedImpairmentLoss
      contextRef="As_Of_12_31_2020_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_15Ajv0A80kCqmgqYteHIyg"
      decimals="-5"
      id="Narr_ja1cQpsdRkuEb5yYwZ5AdA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">116600000</us-gaap:GoodwillImpairedAccumulatedImpairmentLoss>
    <us-gaap:GoodwillImpairedAccumulatedImpairmentLoss
      contextRef="As_Of_12_31_2021_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesIndustryMember_R0qHBx0XX0Wj1s5Vls2kkQ"
      decimals="-5"
      id="Narr_4csZ6iwNEUCTwjyqBk3SsQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">116600000</us-gaap:GoodwillImpairedAccumulatedImpairmentLoss>
    <fix:PercentageOfFairValuesInExcessOfCarryingValue
      contextRef="Duration_1_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_aC11Na-UtkSXBk48xtvyzw"
      decimals="2"
      id="Narr_A-aSaHmQW0KJPMUjnRJ-Xw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.32</fix:PercentageOfFairValuesInExcessOfCarryingValue>
    <us-gaap:Goodwill
      contextRef="As_Of_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_gbBn4xug80Kz7YZIgH5Ebw"
      decimals="-5"
      id="Narr_h96yQksPc0u6XMNIZw7nTA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">96800000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_HsgHByXxCEi2TuVO5rzbXg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_Hyb2jAE_RUiTL9BwkS1b-w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr__WQdv_fGlkyEl3bj-Tkn7A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_7WSxLsjOdk-F1mYr4A2QMw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Identifiable intangible assets consist of the following (dollars in thousands):&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:82%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.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:2.01%;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:20.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;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:9.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;white-space:nowrap;width:2.01%;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.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:2.01%;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:9.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;white-space:nowrap;width:2.01%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.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="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.01%;margin:0pt;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:20.44%;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;Weighted-Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;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;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;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;December 31, 2020&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:24.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="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.01%;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:20.44%;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;Remaining Useful Lives&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.8%;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;Gross Book&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.73%;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;Accumulated&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.8%;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;Gross Book&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.73%;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;Accumulated&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:24.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="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.01%;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:20.44%;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;in Years&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Amortization&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.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;Amortization&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:24.42%;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.01%;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:20.44%;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;7.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0pt 0pt;"&gt; 330,572&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (130,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0pt 0pt;"&gt; 255,692&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (103,919)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;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:20.44%;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.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;margin:0pt;padding: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,300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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:10.47%;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,091)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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:10.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (12,600)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Trade Names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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:20.44%;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;19.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 114,795&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (22,697)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 91,495&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.47%;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; (18,661)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:24.42%;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.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:20.44%;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:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;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; 477,667&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.47%;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;"&gt; (172,886)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.54%;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; 366,987&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.25%;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.47%;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;"&gt; (135,180)&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 0pt 12pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhF8GnyjDkyymQ0k65MU3A"
      id="Narr_6rlO3s6bYUONxxGrnkzjkw">P7Y7M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_34JxfyWAm02qkzKThyCKsg"
      id="Tc_Dju6hDYs2EmlyMbNo3BkFg_4_2">P7Y7M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g"
      decimals="-3"
      id="Tc_6gX13UekuEa6g5h1dIaiBw_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">330572000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_2qFN9bdG_Uy169smOPV40g"
      decimals="-3"
      id="Tc_fVIbj_57HESqGaMniWF8vQ_4_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">130098000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g"
      decimals="-3"
      id="Tc_z6I5DvjaPk-kcqnayiHvRA_4_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">255692000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_MRcnlk3PaEG53dY9qL4r3g"
      decimals="-3"
      id="Tc_8dcyjhyDS0OOtwcdwhQlcg_4_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">103919000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_pOFVUUPNK0-RRbDBckuLKg"
      id="Narr_XitS6YZicki2HYsHfAvr8g">P1Y1M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_rFPxktgrDkq3nRDOp24QTw"
      id="Tc_KDT93HfCLkCzWoPNM-egrQ_5_2">P1Y1M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g"
      decimals="-3"
      id="Tc_PctrefCljEWrJtqLWOc-2A_5_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">32300000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_QPp6-58T_kajKNHU3TyQ3g"
      decimals="-3"
      id="Tc_vye1hFKacUyBNpjLss3StQ_5_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">20091000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw"
      decimals="-3"
      id="Tc_C7y3QcXdJUCuRWqugJBUXg_5_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19800000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_Dq3nq6_nhEup28MA3CgSVw"
      decimals="-3"
      id="Tc_1gDN4WiDIUmy1IDMfK551Q_5_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12600000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_O8MqIgnETES13KHlS7-3Qg"
      id="Narr_z2MF5VslxECceGhhFMgNbw">P19Y7M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_05lSAAOfkkGatc_hnwcyNg"
      id="Tc_qu9r-D51Z0OlqENhpxEdLQ_6_2">P19Y7M6D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q"
      decimals="-3"
      id="Tc_rGTgDe5mpkuR7hywdPzZug_6_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">114795000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ugEa301SXEu1cuHts5Gm8Q"
      decimals="-3"
      id="Tc_OLp-9krxzkeV7_vvfWsP2A_6_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22697000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw"
      decimals="-3"
      id="Tc_9yn-x0sxi0KZ7YhvnGAaoA_6_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">91495000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2020_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZYS1cDiAHUqEpX5YDvSUTw"
      decimals="-3"
      id="Tc_No_XI-RiFESXsFLj9csOMw_6_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18661000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ELbLBbX9sEq1z1Le49jThg_7_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">477667000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_aphqLuZ8T0unUeHlhwOGKQ_7_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">172886000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_5dzO6brCFkacCMy3iVUfag_7_11"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">366987000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_pxU0U9uLb0GiXXqPXuOljQ_7_14"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">135180000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember_4uCHXny_RkuVPPut7vqdaA"
      id="Narr_CkVACKydjUKaOV0HggIFbg">P25Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_iiKoP5WL106lOsN1iIEvcw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">40500000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_fM84zUgUgk2tktIwMO5Bmw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">32700000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_OB7wof6BrEmvUcirDRTqMA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27100000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_ScpdmTfV-Uqmc86lusAcEw">&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&#160;31, 2021, future amortization expense of identifiable intangible assets was as follows (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.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:2.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.62%;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: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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Year ending December 31&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;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.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;background:#cceeff;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 46,505&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 34,532&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 32,343&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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: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; 30,156&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;margin:0pt;padding: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,312&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12%;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; 131,933&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 18pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.62%;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:12%;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; 304,781&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_YRru7rD7xUuJXTA9Q_1Opw_2_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">46505000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_sHASA19Yz0W07Nl74IrURA_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34532000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_80spqcsNaEyzdYzL2htF_A_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">32343000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_MYc8QszzYEWe_nm_B-SMhQ_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">30156000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_yKfg9emXdUWvb5u5xfE86A_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29312000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_eiT-4UKkFUmb3ieNN0F-tA_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">131933000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Sjz5mhCiOEqYDfxP0tbAXw_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">304781000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_Xx3BOR2e3EyMm1mgYnpIfg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;7. Property and Equipment&lt;/b&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;Property and equipment consist of the following (dollars in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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: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.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: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.28%;margin:0pt;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:10.74%;margin:0pt;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.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: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.28%;margin:0pt;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.84%;margin:0pt;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.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: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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;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.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 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: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:10.74%;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;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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: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:11.84%;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;td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;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&#160;Lives&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="5" style="vertical-align:bottom;white-space:nowrap;width:27.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: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;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.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;in&#160;Years&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:12.02%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:13.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Land&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.74%;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; 6,792&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.84%;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; 7,167&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Transportation equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 132,792&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 113,802&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Machinery and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 20&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;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; 48,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;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; 43,386&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Computer and telephone equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 10&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;margin:0pt;padding: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,065&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding: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,215&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Buildings and leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 40&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;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; 74,981&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;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; 69,683&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,081&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.84%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Construction in progress&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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; 1,668&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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; 1,294&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.28%;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:10.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 293,379&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 264,408&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Less&#x2014;Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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;span 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.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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; (164,825)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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; (147,202)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.28%;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.74%;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; 128,554&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.84%;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; 117,206&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;Depreciation expense for the years ended December&#160;31, 2021, 2020 and 2019 was $28.4&#160;million, $27.9&#160;million and $24.5&#160;million, respectively.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_nzbC36zcuUqoAJs1y1nABw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Property and equipment consist of the following (dollars in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.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: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.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: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.28%;margin:0pt;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:10.74%;margin:0pt;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.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: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.28%;margin:0pt;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.84%;margin:0pt;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.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: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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;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.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 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: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:10.74%;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;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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: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:11.84%;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;td style="vertical-align:bottom;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.81%;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&#160;Lives&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="5" style="vertical-align:bottom;white-space:nowrap;width:27.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: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;white-space:nowrap;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:57.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:2.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 style="vertical-align:bottom;white-space:nowrap;width:10.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;in&#160;Years&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:12.02%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:13.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Land&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.74%;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; 6,792&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.84%;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; 7,167&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Transportation equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 132,792&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 113,802&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Machinery and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 20&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;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; 48,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;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; 43,386&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Computer and telephone equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 10&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;margin:0pt;padding: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,065&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding: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,215&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Buildings and leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 40&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:10.74%;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; 74,981&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;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; 69,683&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:10.81%;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 - 17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,081&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.84%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Construction in progress&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:top;white-space:nowrap;width:10.81%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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; 1,668&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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; 1,294&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.28%;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:10.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 293,379&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:11.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 264,408&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Less&#x2014;Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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;span 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.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.74%;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; (164,825)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.84%;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; (147,202)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:57.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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:2.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.28%;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.74%;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; 128,554&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.84%;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; 117,206&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_apRQpgl3pEKC10gNy-HpFQ"
      decimals="-3"
      id="Tc_2FrsL6Nde0i6h-K5NeemIA_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6792000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LandMember_o8jPpr8g6Uy_QIuP8eHCqg"
      decimals="-3"
      id="Tc_qKGzIA3BREajnpP8mxm--A_4_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7167000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_C6ecXKwanEaPzyzIvmCNUA"
      id="Narr_mFxBjudhR0-81SQot0MlVQ">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_wqg8tYEFcUqNXIPGuDQO7A"
      id="Narr_1ZxQfMo_C0yDwOkKwVn7Vw">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_8dno5vJvb06Aj61uFxC6ew"
      decimals="-3"
      id="Tc_xX5tpiu-3UCg0FMRdsa48g_5_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">132792000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_TransportationEquipmentMember_JD2hZBZ5SUeQguMFQIU78A"
      decimals="-3"
      id="Tc_tWmRM7Kn8UKe_OVVZhPDvQ_5_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">113802000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_1XDoZwPjwkuXhKJ_PPmhuQ"
      id="Narr_8FX8i-OvG0u98UfA8iHHGw">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_ohjUZXDvqEmz_tIWZxTtTQ"
      id="Narr_AkGahn2XmkWp2qRPcK_MXg">P20Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_88azp6s78kSUSFUztFc8gQ"
      decimals="-3"
      id="Tc_12-7PeskrEuwonVuZE0zQQ_6_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">48000000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_MachineryAndEquipmentMember_rp5djebjj0G_OZvpOkSONQ"
      decimals="-3"
      id="Tc_-RrqW6hf-k2vw78JkUIc4w_6_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">43386000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_CfjJ7lpZBEmN9BESr9T6vQ"
      id="Narr_2fsUafq3zEOOphYyGF5vCw">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_sg3HNZ_HvUuT_GVRoogW7Q"
      id="Narr_noiVDbY4e0O2Fz9d-pRicw">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_Yvj1j1EMc0qYWARF1IJuqQ"
      decimals="-3"
      id="Tc_oYX2YUnfpkesqKAOav92EA_7_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">23065000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_ComputerAndTelephoneEquipmentMember_53Y1EGQrO0adgH-r_TpjiQ"
      decimals="-3"
      id="Tc_zX2bnAVrGkedkkW2gqAhsA_7_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">23215000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_KMSArFTvnUWXY3MQZgMe8Q"
      id="Narr_S4zqEO2pzkWXevg8InpjbQ">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_Z7hfTyj8UEuMOBuiByFVKw"
      id="Narr_99nptT2RQU2MRGjnOD13YA">P40Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_1HoQL2TdLUuevW9FSC-4EA"
      decimals="-3"
      id="Tc_jrktP5eWr0qWY_utKxHo0A_8_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">74981000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fix_BuildingAndLeaseholdImprovementsMember_IiLBu4et_EGxmH_5eh6kSQ"
      decimals="-3"
      id="Tc_yfA4eJbZIkmZNfoux5_5gQ_8_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">69683000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_YdsRN5BWkkGW0leygAn9rw"
      id="Narr_GoqJqnxEIkeVP0__SDEbuw">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_ZWSx8AeTwkG1jZc1EpNWmQ"
      id="Narr_kdNniYnfx0qTrfLqXSaBOg">P17Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7_8Soz4n10eFV13Hansrsw"
      decimals="-3"
      id="Tc_S9AiGyHbKUWUmHgFsqXNBw_9_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6081000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_uRyPTRAiJkSF6K3-uQLP7A"
      decimals="-3"
      id="Tc_OLSW9CdtfUGcATXZEYHyMA_9_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5861000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_RynWBONYdU2zhg1hyMtZXA"
      decimals="-3"
      id="Tc_AK6bqj-uU0mCwkD7ICO29w_10_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1668000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ConstructionInProgressMember_sehftOd7T0-3_DJg2qdVyw"
      decimals="-3"
      id="Tc_tNbhoqsp8U2z2t54cP0xuw_10_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1294000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_B60Sg_-FcE2FWFUaHzIDlg_11_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">293379000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_FCrps42_ykuWotfU32fFyg_11_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">264408000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_O-IcwE_3_kyf8M0zV-Hllw_12_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">164825000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_oWwa9hfpQku19ECcdJNTwQ_12_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">147202000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_LNFtfPgKrUGE_68b8HvB2w_13_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">128554000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_MHBAIMRX7E-K-OASKVNJuw_13_8"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">117206000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:DepreciationAndAmortization
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_L78N4IxVbUCLev4P_8x1fg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28400000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_FH6OaIlNDEi4KL0jOixJtg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27900000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_X7yiITFvM0CKorBDtD6g8Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24500000</us-gaap:DepreciationAndAmortization>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_8eK59IgITUaCeW6fugVfOw">&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;8. Detail of Other Current Liabilities&lt;/b&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;Other current liabilities consist of the following (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:66.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:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.92%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.92%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.84%;margin:0pt;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.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;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:29.42%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;margin:0pt;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.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;&#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.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#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.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.92%;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; 8,969&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.92%;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; 8,914&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Current lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,050&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16,586&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued job losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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; 8,962&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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,151&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued sales and use tax&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,731&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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; 13,734&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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,559&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Liabilities due to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27,613&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,280&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 37,211&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45,271&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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; 119,400&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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; 91,492&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_05PRxBWN0Ei3Xy7BlcNXcw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Other current liabilities consist of the following (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:66.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:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.92%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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:11.92%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.84%;margin:0pt;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.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;td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:29.42%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;margin:0pt;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.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;&#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.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#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.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.92%;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; 8,969&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.92%;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; 8,914&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Current lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,050&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16,586&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued job losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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; 8,962&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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,151&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Accrued sales and use tax&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,731&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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; 13,734&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;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,559&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Liabilities due to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27,613&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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:11.92%;margin:0pt;padding: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,280&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Other current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 37,211&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45,271&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:66.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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; 119,400&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;td style="vertical-align:bottom;white-space:nowrap;width:1.55%;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.92%;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; 91,492&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_NmpKLHsSi0-z8KwVbvqFWA_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8969000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_jzRyKja2806A2jubEyUvtw_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8914000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_KWQeqOnu3kOlVDTOtmbLPw_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19050000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_JwfKWQ9kKE-ifRPQph4oOA_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16586000</us-gaap:OperatingLeaseLiabilityCurrent>
    <fix:AccruedJobLosses
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_zxXSE1_Ir0i1sijrN7gXhA_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8962000</fix:AccruedJobLosses>
    <fix:AccruedJobLosses
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_IzPgzTU6q0qT4lgjq0SAng_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2151000</fix:AccruedJobLosses>
    <us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_wLdSqjkwuEaG56b1I4z6QQ_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3861000</us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent>
    <us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_fCCbv-C1p0SmIRx5EDtq3w_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3731000</us-gaap:SalesAndExciseTaxPayableCurrentAndNoncurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_eJDmSKxkwkKJGjUYY8Y2LQ_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">13734000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_JcOdg_Mj7k-L5vAHaXv6yw_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4559000</us-gaap:DeferredRevenueCurrent>
    <fix:LiabilitiesDueToFormerOwnersCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_swjlzEz_vUClitEZ9lRLcw_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27613000</fix:LiabilitiesDueToFormerOwnersCurrent>
    <fix:LiabilitiesDueToFormerOwnersCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_ATiUzpjljk-y7h0yznm37w_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10280000</fix:LiabilitiesDueToFormerOwnersCurrent>
    <us-gaap:OtherSundryLiabilitiesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Eap3BXMmPEqRkLtRvTjMZg_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">37211000</us-gaap:OtherSundryLiabilitiesCurrent>
    <us-gaap:OtherSundryLiabilitiesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_0xlxa5HHuUu4j7YNFGWHNg_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">45271000</us-gaap:OtherSundryLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ws6GmUaoNUe7-pJ1t71CTQ_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">119400000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc__A0qwu6g_0iBGkKGOsXQZg_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">91492000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_7L3aoI5DYkC5nkEoquucPw">&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;9. 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 0pt 12pt 0pt;"&gt;Debt obligations consist of the following (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.26%;margin:0pt;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;width:1.4%;margin:0pt;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.4%;margin:0pt;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.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: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.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.4%;margin:0pt;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.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="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.22%;margin:0pt;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:70.26%;margin:0pt;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:1.4%;margin:0pt;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:27.1%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;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.26%;margin:0pt;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:1.4%;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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.42%;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;2021 &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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.44%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;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.26%;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; 220,000&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;&lt;span 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.4%;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.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; 70,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Term loan&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;margin:0pt;padding: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,000&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:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 135,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;background:#cceeff;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 47,954&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;&lt;span 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.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 31,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Finance lease liabilities (See Note 10)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; 266&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:1.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;"&gt;&lt;span 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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total principal amount&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 388,220&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;&lt;span 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.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 236,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;unamortized debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; (190)&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:1.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;"&gt;&lt;span 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.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;"&gt; (267)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total debt, net of unamortized debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 388,030&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;&lt;span 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.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;"&gt;&lt;span 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.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; 235,733&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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:1.4%;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.4%;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.02%;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; (2,788)&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:1.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total long-term portion of debt, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;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.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 385,242&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;&lt;span 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.4%;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.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; 235,733&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;At December&#160;31, 2021, future principal payments of debt are as follows (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.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;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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.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;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;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;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;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.78%;background:#cceeff;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&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;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:1.67%;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.78%;margin:0pt;padding: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,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:84.53%;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;2023&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:1.67%;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:9.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; 27,981&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;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&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:1.67%;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.78%;margin:0pt;padding: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,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:84.53%;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: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:1.67%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.78%;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; 322,099&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.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="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:10pt;margin:0pt;"&gt;&lt;span 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.67%;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.78%;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; 388,220&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;Interest expense included the following primary elements (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.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:2.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.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:7.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:2.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.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:7.37%;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.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.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:7.48%;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.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:67.21%;margin:0pt;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.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="8" style="vertical-align:bottom;white-space:nowrap;width:30.21%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;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.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:8.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.66%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.77%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on notes to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;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,052&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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,354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;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,531&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on borrowings and unused commitment fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;margin:0pt;padding: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,371&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;margin:0pt;padding: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,319&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,887&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on interest rate swaps&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.36%;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; 499&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.37%;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; 338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.48%;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: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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on finance leases&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.37%;margin:0pt;padding: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.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.48%;margin:0pt;padding: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: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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Letter of credit fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;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; 679&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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; 830&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;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; 512&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Amortization of debt financing costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.36%;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; 538&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.37%;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; 544&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.48%;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; 387&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;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.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.28%;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.36%;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; 6,196&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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; 8,385&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.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:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,317&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-size:1pt;font-style:italic;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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Revolving Credit Facility and Term Loan&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 $600.0 million senior credit facility (the &#x201c;Facility&#x201d;) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="white-space:pre-wrap;"&gt;provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of December 31, 2021, the Facility capacity was $570.0 million, as the term loan was paid down by $30.0 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 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 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. In 2019, we incurred approximately $1.4 million in financing and professional costs in connection with an amendment to the Facility, which are being amortized over the remaining term of the Facility. Of this amount, $0.4 million is attributable to the term loan and is being amortized using the effective interest method. For the term loan, we are required to make quarterly payments increasing over time from 1.25% to 3.75% of the original aggregate principal amount of the term loan, with the balance due in January 2025. As of December&#160;31, 2021, we had $120.0 million principal outstanding on the term loan, $220.0 million of outstanding borrowings on the revolving credit facility, $53.5&#160;million in letters of credit outstanding and $176.5&#160;million of credit available.&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 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Collateral&lt;/i&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;A common practice in our industry is the posting of payment and performance bonds with customers. These bonds are offered by financial institutions known as sureties and provide assurance to the customer that in the event we encounter significant financial or operational difficulties, the surety will arrange for the completion of our contractual obligations and for the payment of our vendors on the projects subject to the bonds. In cooperation with our lenders, we granted our sureties a first lien on assets such as receivables, costs and estimated earnings in excess of billings, and equipment specifically identifiable to projects for which bonds are outstanding, as collateral for potential obligations under bonds. As of December&#160;31, 2021, the book value of these assets was approximately $98.9&#160;million.&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 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Covenants and Restrictions&lt;/i&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;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. Credit Facility Adjusted EBITDA is defined under the Facility for financial covenant purposes as net earnings for the four quarters ending as of any given quarterly covenant compliance measurement date, plus the corresponding amounts for (a)&#160;interest expense; (b)&#160;provision for income taxes; (c)&#160;depreciation and amortization; (d)&#160;stock compensation; (e) other non-cash charges; and (f)&#160;pre-acquisition results of acquired companies. The Facility&#x2019;s principal financial covenants include:&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Total Leverage Ratio&#x2014;&lt;/i&gt;The Facility requires that the ratio of our Consolidated Total Indebtedness to our Credit Facility Adjusted EBITDA not exceed 3.00 to 1.00 as of the end of each fiscal quarter. The total leverage ratio as of December&#160;31, 2021 was 1.2.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Fixed Charge Coverage Ratio&#x2014;&lt;/i&gt;The Facility requires that the ratio of (a) Credit Facility Adjusted EBITDA, less non-financed capital expenditures, provision for income taxes, dividends and amounts used to repurchase stock when the Company&#x2019;s Total Leverage Ratio exceeds 2.00 to 1.00 to (b) the sum of interest expense and scheduled principal payments of indebtedness be at least 1.50 to 1.00. Credit Facility Adjusted EBITDA, capital expenditures, provision for income taxes, dividends, stock repurchase payments, interest expense, and scheduled principal payments are defined under the Facility for purposes of this covenant, to be amounts for the four quarters ending as of any given quarterly covenant compliance measurement date. The fixed charge coverage ratio as of December&#160;31, 2021 was 42.0.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Other Restrictions&#x2014;&lt;/i&gt;The Facility permits acquisitions of up to $5.0 million per transaction, provided that the aggregate purchase price of such an acquisition and of acquisitions in the same fiscal year does not exceed $10.0 million. However, these limitations only apply when the Company&#x2019;s Total Leverage Ratio is greater than 2.50 to 1.00.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;While the Facility&#x2019;s financial covenants do not specifically govern capacity under the Facility, if our debt level under the Facility at a quarter-end covenant compliance measurement date were to cause us to violate the Facility&#x2019;s leverage ratio covenant, our borrowing capacity under the Facility and the favorable terms that we currently have could be negatively impacted by the lenders.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;We were in compliance with all of our financial covenants as of December&#160;31, 2021.&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 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Interest Rates and Fees&lt;/i&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;There are two interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. Additional margins are then added to these two rates. Under the Base Rate Loan Option, the interest rate is determined based on the highest of the Federal Funds Rate plus 0.5%, the prime lending rate offered by Wells Fargo Bank, N.A. or the one-month Eurodollar Rate plus 1.00%. Under the Eurodollar Rate Loan Option, the interest rate is determined based on the one- to six-month Eurodollar Rate. The Eurodollar Rate corresponds very closely to rates described in various general business media sources as the London Interbank Offered Rate or &#x201c;LIBOR.&#x201d; Additional margins are then added to these rates. The additional margins are determined based on the ratio of our Consolidated Total Indebtedness as of a given quarter end to our &#x201c;Credit Facility Adjusted EBITDA,&#x201d; which shall mean Consolidated EBITDA as such term is defined in the credit agreement, for the &lt;span style="white-space:pre-wrap;"&gt;twelve months&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; ending as of that quarter end.&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;The interest rates under the Facility are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. For illustrative purposes, the following are the respective market rates as of December&#160;31, 2021 relating to interest options under the Facility:&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:88.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.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:7.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Base Rate Loan Option:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;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.58%;background:#cceeff;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.63%;background:#cceeff;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:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Federal Funds Rate plus 0.50%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;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.58%;margin:0pt;padding: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.57%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Wells Fargo Bank, N.A. Prime Rate&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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.25%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;One-month LIBOR plus 1.00%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.58%;margin:0pt;padding: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.10%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Eurodollar Rate Loan Option:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;One-month LIBOR&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.58%;margin:0pt;padding: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.10%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Six-month LIBOR&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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;0.34%&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;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 just the same as actual borrowings. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future.&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;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. Letter of credit fees and commitment fees are based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.&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:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50.9%;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:10.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.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:7.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:2.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:7.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:2.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:10.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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.9%;margin:0pt;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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&#160;Total&#160;Indebtedness&#160;to&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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;Credit&#160;Facility&#160;Adjusted&#160;EBITDA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;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;white-space:nowrap;width:10.03%;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;1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.98%;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;1.75&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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&#160;2.50&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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;or&#160;greater&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.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:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:2.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:50.9%;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:10.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; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;margin:0pt;padding: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.76%;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:7.98%;margin:0pt;padding: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:2.76%;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:10.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; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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;Eurodollar Rate 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:10.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; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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.76%;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.98%;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:2.76%;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.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.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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;tr&gt;&lt;td style="vertical-align:bottom;width:50.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Letter of credit fees&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:10.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; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;margin:0pt;padding: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.76%;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.98%;margin:0pt;padding: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:2.76%;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.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; 2.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Commitment fees on any portion of the Revolving Loan capacity not in use for borrowings or letters of credit at any given time&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:10.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; 0.20&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:7.98%;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; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:7.98%;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; 0.30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:10.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; 0.35&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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:12pt 0pt 12pt 0pt;"&gt;The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.4% as of December&#160;31, 2021. The weighted average interest rate applicable to the term loan was approximately 1.4% as of December 31, 2021.&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 12pt 36pt;"&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 0pt 12pt 0pt;"&gt;As part of the consideration used to acquire ten companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $48.0 million as of December 31, 2021. In conjunction with the acquisition of MEP Holdings in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $7.6 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in April 2024 and April 2025. In conjunction with the acquisition of Ivey in the fourth quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $8.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in January 2025. In conjunction with the acquisition of Amteck in the third quarter of 2021, we issued a promissory note to former owners with an outstanding balance of $10.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 2.5%. The principal is due in equal installments in October 2024 and October 2025. In conjunction with the acquisition of a Texas electrical contractor in the second quarter of 2019, we issued a promissory note to former owners with an outstanding balance of $2.0 million as of December 31, 2021 that bears interest, payable quarterly, at a stated interest rate of 4.0%. The remaining principal is due in April 2023. In conjunction with the six remaining acquisitions, we issued notes to former owners with an outstanding balance of $20.4 million as of December 31, 2021 that bear interest, payable quarterly, at stated interest rates ranging from 2.3% - 3.5%. The principal amounts are due between April 2022 and April 2025.&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:ScheduleOfDebtTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_hUorjFfIXUuYDRnXL8Fkdw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Debt obligations consist of the following (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.26%;margin:0pt;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;width:1.4%;margin:0pt;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.4%;margin:0pt;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.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: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.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.4%;margin:0pt;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.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="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.22%;margin:0pt;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:70.26%;margin:0pt;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:1.4%;margin:0pt;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:27.1%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;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.26%;margin:0pt;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:1.4%;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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.42%;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;2021 &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 colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.44%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;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.26%;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; 220,000&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;&lt;span 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.4%;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.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; 70,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Term loan&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;margin:0pt;padding: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,000&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:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 135,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;background:#cceeff;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:1.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 47,954&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;&lt;span 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.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 31,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Finance lease liabilities (See Note 10)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; 266&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:1.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;"&gt;&lt;span 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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total principal amount&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 388,220&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;&lt;span 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.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; 236,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;unamortized debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.02%;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; (190)&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:1.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;"&gt;&lt;span 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.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;"&gt; (267)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total debt, net of unamortized debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.02%;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; 388,030&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;&lt;span 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.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;"&gt;&lt;span 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.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; 235,733&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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:1.4%;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.4%;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.02%;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; (2,788)&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:1.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;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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.26%;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;Total long-term portion of debt, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.4%;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.4%;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.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 385,242&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;&lt;span 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.4%;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.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; 235,733&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfDebtTableTextBlock>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="-3"
      id="Tc_QzOTXFUr0ECr-XtpTSwhhA_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">220000000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ngYadPqEmUC_793WwuLXYg"
      decimals="-3"
      id="Tc_bjOBPTdYS06BvS7J0zsyJQ_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">70000000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og"
      decimals="-3"
      id="Tc_pinoeEUtm0qR8JVZm8c9pw_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">120000000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_w2Uj0_fu50qSf60D4JhNfQ"
      decimals="-3"
      id="Tc_paS4txhBp0uwhQgF5rMVEw_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">135000000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw"
      decimals="-3"
      id="Tc_gEl2HLqUiESeZVUcwOWBGA_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">47954000</us-gaap:NotesAndLoansPayable>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2020_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_87gmMkjc-Ea2tymjomRPyA"
      decimals="-3"
      id="Tc_ainpm754I02p6jd3fF7kIw_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31000000</us-gaap:NotesAndLoansPayable>
    <us-gaap:FinanceLeaseLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_HQJ371wvYUOuNGWePVKvEw_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">266000</us-gaap:FinanceLeaseLiability>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_t0KKIxfMwUmBDC_Q0J2IPA_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">388220000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_pkGTL7EPhEOe_KsgCMSPKg_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">236000000</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ZDQOjp8Vn0GNYLGUSfGuuA_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">190000</us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet>
    <us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_EsoRVLRQTU6NwQF7_p7rGw_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">267000</us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet>
    <us-gaap:LongTermDebt
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_0OTxL3gQa0CfDXN9P6Fp2A_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">388030000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_FDzEglGzwk-xYnwmezVFQA_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">235733000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebtCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_MvE0T9lbAUCogwYDeq5yUQ_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2788000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_HwaOvg1Bx0eLV7s6LxHSHg_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">385242000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_h3utDuzahUaitC0bEAcwYg_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">235733000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_fUjq2c2TlkiO6cjE1FpsYQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;At December&#160;31, 2021, future principal payments of debt are as follows (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.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;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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.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;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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;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;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;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;td style="vertical-align:bottom;white-space:nowrap;width:9.78%;background:#cceeff;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&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;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:1.67%;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.78%;margin:0pt;padding: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,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;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:84.53%;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;2023&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:1.67%;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:9.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; 27,981&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.53%;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&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:1.67%;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.78%;margin:0pt;padding: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,352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:84.53%;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: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:1.67%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.78%;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; 322,099&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.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="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:10pt;margin:0pt;"&gt;&lt;span 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.67%;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.78%;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; 388,220&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ZbwQcht9T06wOaFy5hmi1Q_2_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2788000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_SKjN-vvUMEqdjMmuIY5I6g_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27981000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_kuQ7YQMEjkiqIVB4npoNuw_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">35352000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_GPUe0NBrlkC0AEEVJERwyw_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">322099000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour>
    <us-gaap:DebtAndCapitalLeaseObligations
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_s4JGdPcLSkyY-3Ei9OUS2w_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">388220000</us-gaap:DebtAndCapitalLeaseObligations>
    <us-gaap:InterestIncomeAndInterestExpenseDisclosureTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_7JcvyuKZ5UefIUUTwaxvxw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Interest expense included the following primary elements (in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.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:2.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.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:7.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:2.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.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:7.37%;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.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.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:7.48%;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.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:67.21%;margin:0pt;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.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="8" style="vertical-align:bottom;white-space:nowrap;width:30.21%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;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.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:8.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.66%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:8.77%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on notes to former owners&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;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,052&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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,354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;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,531&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on borrowings and unused commitment fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;margin:0pt;padding: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,371&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;margin:0pt;padding: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,319&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,887&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on interest rate swaps&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.36%;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; 499&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.37%;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; 338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.48%;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: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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Interest expense on finance leases&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.37%;margin:0pt;padding: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.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.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.48%;margin:0pt;padding: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: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:67.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Letter of credit fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.36%;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; 679&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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; 830&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.48%;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; 512&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Amortization of debt financing costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.36%;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; 538&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.37%;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; 544&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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:7.48%;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; 387&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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:67.21%;background:#cceeff;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.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.28%;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.36%;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; 6,196&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.37%;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; 8,385&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.28%;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.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:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,317&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;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;/table&gt;</us-gaap:InterestIncomeAndInterestExpenseDisclosureTableTextBlock>
    <us-gaap:InterestExpenseRelatedParty
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_VOv8AEzs-EOCFd8KgOfsyQ_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1052000</us-gaap:InterestExpenseRelatedParty>
    <us-gaap:InterestExpenseRelatedParty
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_2t2bAqoudkWOuDfcEgtO9w_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1354000</us-gaap:InterestExpenseRelatedParty>
    <us-gaap:InterestExpenseRelatedParty
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_-q8ryUFEVkGwxlrPAGNlrA_3_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1531000</us-gaap:InterestExpenseRelatedParty>
    <us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_v20P_A02Rk6As8NQNzV99g_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3371000</us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts>
    <us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_n-AiWc9KWUulw7qcAWamZw_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5319000</us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts>
    <us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_hWR7WefA4kKnZjJIVmFlww_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6887000</us-gaap:DebtRelatedCommitmentFeesAndDebtIssuanceCosts>
    <fix:InterestExpenseOnInterestRateSwaps
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_c9uCECBbiU-kellqy9OZmg_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">499000</fix:InterestExpenseOnInterestRateSwaps>
    <fix:InterestExpenseOnInterestRateSwaps
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_QmVDIspPZEeA3E51AX40Fg_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">338000</fix:InterestExpenseOnInterestRateSwaps>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_Clkrxc1E40i-gJTS9mwXHg_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">57000</us-gaap:FinanceLeaseInterestExpense>
    <fix:LetterOfCreditFeesAmount
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_6tvr6euP40OHZF86EXSRdw_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">679000</fix:LetterOfCreditFeesAmount>
    <fix:LetterOfCreditFeesAmount
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_3ng8s4GkR0uki6T-RkGUNw_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">830000</fix:LetterOfCreditFeesAmount>
    <fix:LetterOfCreditFeesAmount
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_saxFx1oi9USdx18fWHLWRg_7_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">512000</fix:LetterOfCreditFeesAmount>
    <us-gaap:AmortizationOfFinancingCostsAndDiscounts
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_po1gPmsCN0iYY-z3X-Rj_w_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">538000</us-gaap:AmortizationOfFinancingCostsAndDiscounts>
    <us-gaap:AmortizationOfFinancingCostsAndDiscounts
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Dc4CQ7_d6E2pLQvP3iad_Q_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">544000</us-gaap:AmortizationOfFinancingCostsAndDiscounts>
    <us-gaap:AmortizationOfFinancingCostsAndDiscounts
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qpkWMYqMgUShhgJc9AjTYw_8_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">387000</us-gaap:AmortizationOfFinancingCostsAndDiscounts>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_vIqYLbnDaEiC3TBt4ooItA_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6196000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_bWsRE4MtbESgjaLtUZ7eEA_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8385000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_EGikzimDrUWxzafwWfaoFQ_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9317000</us-gaap:InterestExpense>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ"
      decimals="-5"
      id="Narr_HTxlJJvlDkCB0aoh_H5byw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">600000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_1_6yX_X160OaMlQlIXX9rw"
      decimals="-5"
      id="Narr_MzRiToPZpkCSmOd5AgHuLQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">450000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_wpTTXOlM3kibatpFqpl_AA"
      decimals="-5"
      id="Narr_wl_UlGiOMkOBECGFz-f7hQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <fix:LineOfCreditBorrowingCapacityAccordionOption
      contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_zXu43rs7GkKigzVNbcdkVQ"
      decimals="-5"
      id="Narr_d-vK7-b0KUar4sMC8AILiA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:LineOfCreditBorrowingCapacityAccordionOption>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_oppgyQDECk2oTRBo51MDtg"
      decimals="-5"
      id="Narr_79IWie3khkeTeAERpzVo5Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">570000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:RepaymentsOfSeniorDebt
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_Q1OqB17gXEumo0a39qVC5w"
      decimals="-5"
      id="Narr_Ftj1P9kWPEiHWlF6PfkIKQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">30000000.0</us-gaap:RepaymentsOfSeniorDebt>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_12_20_2019_us-gaap_DebtInstrumentAxis_us-gaap_LetterOfCreditMember_pF_M-6Fcz0KYjaZtcu1fRg"
      decimals="-5"
      id="Narr_5JbjjWK-90ylk-tvX63KFQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">160000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_AmendedSeniorRevolvingCreditFacilityMember_RJ8mDCkkMk6GLBc3oTSXlw"
      decimals="-5"
      id="Narr_HifI1TKzD0uCMnuAF_Y_bA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1400000</us-gaap:PaymentsOfFinancingCosts>
    <fix:PaymentsOfFinancingCostsTermLoan
      contextRef="Duration_12_20_2019_To_12_31_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_axranmOZHUKK7DGCmEVbEw"
      decimals="-5"
      id="Narr_uFOCAQo6RU6HOBfoag1Q2Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">400000</fix:PaymentsOfFinancingCostsTermLoan>
    <fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount
      contextRef="Duration_12_19_2019_To_12_19_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_PQDkiwC6d0qdS8fcKajinQ"
      decimals="4"
      id="Narr_szKuWktxsUaQDf4CSJeGzA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0125</fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount>
    <fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount
      contextRef="Duration_12_20_2019_To_12_20_2019_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_dMpgsjhRT0CYASNM6Dw1fw"
      decimals="4"
      id="Narr_hprNB--j9kWo7sZClfRxJQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0375</fix:RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount>
    <us-gaap:DebtLongtermAndShorttermCombinedAmount
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og"
      decimals="-5"
      id="Narr_ucvLEmdeFUGazzw-kL1LWA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">120000000.0</us-gaap:DebtLongtermAndShorttermCombinedAmount>
    <us-gaap:LineOfCredit
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="-5"
      id="Narr_Wrxqbow3yEeSUcA6TW4yLQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">220000000.0</us-gaap:LineOfCredit>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="-5"
      id="Narr_K-s2qpjvy0WsongYAUPpgA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">53500000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="-5"
      id="Narr_5tb5Xlz3ikGPg4hQDrHXEg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">176500000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="-5"
      id="Narr_plTtsqqyzUigQmRR31FVGQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">98900000</us-gaap:PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition>
    <fix:DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"
      decimals="INF"
      id="Narr_P9u0O2dI1kycwdkU_xDxfw"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">4</fix:DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters>
    <fix:DebtInstrumentCovenantLeverageRatio
      contextRef="As_Of_12_31_2021_fix_DebtCovenantEffectiveDateAxis_fix_ThroughMaturityMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_OPi3mk8UhEyWfglP37eGFQ"
      decimals="0"
      id="Narr_7qrBWW8BFU66h7OWzgH6Ag"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">3.00</fix:DebtInstrumentCovenantLeverageRatio>
    <fix:DebtInstrumentCovenantLeverageRatio
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="2"
      id="Narr_lJNTobP-M0uT0lmj_Qhcug"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.2</fix:DebtInstrumentCovenantLeverageRatio>
    <fix:DebtInstrumentCovenantFixedChargeCoverageRatio
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="0"
      id="Narr_hDOAbjAnZ0uJC-MwLlR2rg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">2.00</fix:DebtInstrumentCovenantFixedChargeCoverageRatio>
    <fix:DebtInstrumentCovenantFixedChargeCoverageRatio
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_nClKzh0mOk60_cNUnDRYHg"
      decimals="1"
      id="Narr_LBNFkWuBaESIOb5D9frh8w"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">1.50</fix:DebtInstrumentCovenantFixedChargeCoverageRatio>
    <fix:DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"
      decimals="INF"
      id="Narr_RfnU2hQQNEi03QpjCajWkg"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">4</fix:DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters>
    <fix:DebtInstrumentCovenantFixedChargeCoverageRatio
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="INF"
      id="Narr_2kzUV9rzSEaP7eZ2WB7jig"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">42.0</fix:DebtInstrumentCovenantFixedChargeCoverageRatio>
    <fix:DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA"
      decimals="-5"
      id="Narr_3bNSm-K1mkWJMKoPMW1LeA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5000000.0</fix:DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction>
    <fix:DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_YTj0_wn4UEeTRf0f68XMrA"
      decimals="-5"
      id="Narr_o-dNR-NvvkqpVz71PBAdcA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10000000.0</fix:DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions>
    <fix:DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_srt_StatementScenarioAxis_fix_ScenarioCovenantRequirementMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_PvPVAIJ0xE6eAUdS3G69fQ"
      decimals="1"
      id="Narr_-mRvwomTq0irlviHLCGQXA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">2.50</fix:DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio>
    <fix:DebtInstrumentInterestRateOptionsNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"
      decimals="INF"
      id="Narr_Q3IZxE5_60S02WtVa8E2dQ"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">2</fix:DebtInstrumentInterestRateOptionsNumber>
    <fix:DebtInstrumentInterestRateOptionsNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"
      decimals="INF"
      id="Narr_TiNe26LweUeK0x5LIXwSGw"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">2</fix:DebtInstrumentInterestRateOptionsNumber>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A"
      decimals="INF"
      id="Narr_oQU63Ktyv0SWacRaWhk-hw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.005</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A"
      decimals="INF"
      id="Narr_WuNx5j01L0qBELrvWAmL3g"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <fix:DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_qxJmK27-WE-ke13vQPKOWA"
      id="Narr_O699EYmYZkyq3K91Z1Z4Fg">P12M</fix:DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins>
    <fix:ScheduleOfFloatingInterestRateBasesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_wm-pz_eqHEODvdX-G_nOww">&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:88.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.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:7.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Base Rate Loan Option:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;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.58%;background:#cceeff;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.63%;background:#cceeff;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:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Federal Funds Rate plus 0.50%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;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.58%;margin:0pt;padding: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.57%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Wells Fargo Bank, N.A. Prime Rate&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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.25%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;One-month LIBOR plus 1.00%&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.58%;margin:0pt;padding: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.10%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Eurodollar Rate Loan Option:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;One-month LIBOR&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.58%;margin:0pt;padding: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.10%&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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:88.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;Six-month LIBOR&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.58%;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;0.34%&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;/tr&gt;&lt;/table&gt;</fix:ScheduleOfFloatingInterestRateBasesTableTextBlock>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_g_1RzKdmTUiwp4qPV9Ke0A"
      decimals="INF"
      id="Narr_dtoU1VeH10-Z1v5X7rFETw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0050</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <fix:DebtInstrumentMarketRate
      contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateFederalFundsRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hOTR_7DRhEquG4W5z7ClIA"
      decimals="4"
      id="Tc_OqfkcTOMb0quGDvNLqrZZw_2_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0057</fix:DebtInstrumentMarketRate>
    <fix:DebtInstrumentMarketRate
      contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember__xmO7ZpnR0edSVgVwQ6_2g"
      decimals="4"
      id="Tc_mKCedzIzpk6kashZdM9APQ_3_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0325</fix:DebtInstrumentMarketRate>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_VZ_vySu59kWRygeO1nS36A"
      decimals="INF"
      id="Narr_1llkn6Uq0kGs6mltkhMAEw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <fix:DebtInstrumentMarketRate
      contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_jDK33UXujUm3Sh_8EG7ZCA"
      decimals="4"
      id="Tc_ZCa7jojV202_R-WbxwoBjw_4_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0110</fix:DebtInstrumentMarketRate>
    <us-gaap:DebtInstrumentDescriptionOfVariableRateBasis
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_P_RvjWuavkOfFwz2e0n1dQ"
      id="Tc_0c7fLFg2a0-nY3sXUFJWtw_6_0">One-month LIBOR</us-gaap:DebtInstrumentDescriptionOfVariableRateBasis>
    <fix:DebtInstrumentMarketRate
      contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateOneMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_yGK5mhQa0kWTAf8_VyhZag"
      decimals="4"
      id="Tc_NPQiGZqtI0aNqyuiGbwdZw_6_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0010</fix:DebtInstrumentMarketRate>
    <us-gaap:DebtInstrumentDescriptionOfVariableRateBasis
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_HwNUN2Aqh02ex4HfRer4uA"
      id="Tc_H9g-eE1uSUu-Y4HzjYAR9A_7_0">Six-month LIBOR</us-gaap:DebtInstrumentDescriptionOfVariableRateBasis>
    <fix:DebtInstrumentMarketRate
      contextRef="As_Of_12_31_2021_fix_DebtInstrumentVariableRateSecondaryClassificationAxis_fix_DebtInstrumentVariableRateSixMonthLIBORMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_UVJ4gzu9Pkeji3DxTyIPfA"
      decimals="4"
      id="Tc_qMn_fBAgqk6SNJcD4xG-vA_7_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0034</fix:DebtInstrumentMarketRate>
    <fix:ScheduleOfAdditionalMarginsTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_xJ3NZ_AX1EagWF2qcxknWQ">&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:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50.9%;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:10.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.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:7.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:2.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:7.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:2.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:10.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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.9%;margin:0pt;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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&#160;Total&#160;Indebtedness&#160;to&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;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="7" style="vertical-align:bottom;white-space:nowrap;width:44.68%;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;Credit&#160;Facility&#160;Adjusted&#160;EBITDA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;margin:0pt;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;white-space:nowrap;width:10.03%;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;1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.98%;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;1.75&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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&#160;2.50&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:10.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;or&#160;greater&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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:10.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:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:2.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:50.9%;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:10.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; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:7.98%;margin:0pt;padding: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.76%;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:7.98%;margin:0pt;padding: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:2.76%;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:10.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; 1.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;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;Eurodollar Rate 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:10.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; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;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.76%;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.98%;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:2.76%;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.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.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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;tr&gt;&lt;td style="vertical-align:bottom;width:50.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Letter of credit fees&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:10.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; 1.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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.98%;margin:0pt;padding: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.76%;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.98%;margin:0pt;padding: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:2.76%;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.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; 2.00&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;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:50.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Commitment fees on any portion of the Revolving Loan capacity not in use for borrowings or letters of credit at any given time&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:10.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; 0.20&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:7.98%;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; 0.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:7.98%;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; 0.30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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:10.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; 0.35&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;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;/tr&gt;&lt;/table&gt;</fix:ScheduleOfAdditionalMarginsTableTextBlock>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_az6CzfTUoUWVkPoVp6fwSw"
      decimals="INF"
      id="Tc_ZeQlnnb_lESMkbbBXSOB7A_5_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_hyndtCapbkikNBx4-T5mxg"
      decimals="INF"
      id="Tc_54smBsVkGEeLCwq24ThCJg_5_4"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0050</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_gcCzQltf0UCsmXZlxfcb6A"
      decimals="INF"
      id="Tc_LI2I-LVbcE-kxlY6QRSJtQ_5_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0075</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_fix_DebtInstrumentVariableRateBaseRateMember_6ikDRMVBxUOW-4NlI795gw"
      decimals="INF"
      id="Tc_X_qZKOahckqB8PQ3ee663A_5_8"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Lq7kpwH1MUqsTAnspI_lcg"
      decimals="INF"
      id="Tc__strpIKt6EybiV94ote9ig_6_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0125</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_2TOFd-VRgECF_I-EMtJ9xw"
      decimals="INF"
      id="Tc_YFOgoMDoxkWzpbbcscDYwQ_6_4"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0150</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_Tj-eh9hBLkKRRnWvkWGArA"
      decimals="INF"
      id="Tc_Bo6ljV31uE2RD720a1lO1Q_6_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_VariableRateAxis_us-gaap_EurodollarMember_eSZn6fMmsEi0k_rZehIQ5A"
      decimals="INF"
      id="Tc_1wIwK_3n-0-eHpoBcb6Log_6_8"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0200</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <fix:LetterOfCreditFeesPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q"
      decimals="INF"
      id="Tc_qouTb_tQ4kehe8IDAZzqWQ_7_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0125</fix:LetterOfCreditFeesPercentage>
    <fix:LetterOfCreditFeesPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw"
      decimals="INF"
      id="Tc_jewxcrGAE0-s2fiUlOEKew_7_4"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0150</fix:LetterOfCreditFeesPercentage>
    <fix:LetterOfCreditFeesPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A"
      decimals="INF"
      id="Tc_vh-tweZ2MkSaI20HI5MmGA_7_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0175</fix:LetterOfCreditFeesPercentage>
    <fix:LetterOfCreditFeesPercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg"
      decimals="INF"
      id="Tc_l88hEG40fUGT2z4fqJb3gQ_7_8"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0200</fix:LetterOfCreditFeesPercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeOneMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_WRCIrNDLh0y6m_h8GXf47Q"
      decimals="INF"
      id="Tc_sEn4MtEK0E2NzdOtXynbIg_8_2"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0020</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeTwoMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_ieTHZJ0dEk2DD1IXnZwRhw"
      decimals="INF"
      id="Tc_SXDZdO2OMUuymL37mmo8-w_8_4"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0025</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeThreeMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_zgBqT14Cy0KejpWpR4ZT8A"
      decimals="INF"
      id="Tc__7CDsJxkrkypiF7bBn9sIQ_8_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0030</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_1_1_2021_To_12_31_2021_fix_DebtCovenantRatioAxis_fix_DebtCovenantRatioRangeFourMember_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_0s98vcjslUyS3h-xIlWjRg"
      decimals="INF"
      id="Tc_C6CDqLPKBUi1bLNAuZzq7g_8_8"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.0035</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_FeqOfxuYGk-JWk4SLrUy5Q"
      decimals="3"
      id="Narr_RVb-EJfPcU-uCgqRC4vWgQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.014</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_TermLoanMember_Cl74wh3wdk-UolRU_hQ6Og"
      decimals="3"
      id="Narr_ED58z7OVd0GeXDkbF__O3A"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.014</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <fix:CumulativeNumberOfCompaniesAcquired
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw"
      decimals="INF"
      id="Narr_CF6BvZJ4sE24ZG4BRo9Ryg"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">10</fix:CumulativeNumberOfCompaniesAcquired>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_v2xn8FETq0eeefPvnoIWtw"
      decimals="-5"
      id="Narr_Y8ccIRiVVkmdlLRZNTLTYg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">48000000.0</us-gaap:NotesAndLoansPayable>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg"
      decimals="-5"
      id="Narr_knkQ2sIwZE6uatG5hRjH8A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7600000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_HCgLu72wm0C-O03Z9fZ0Vg"
      decimals="3"
      id="Narr_HcWNkNBK2U6BD739DZvtnQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA"
      decimals="-5"
      id="Narr_Gaz13lQbGEKDaMPmoSQRWw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8000000.0</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_IveyMechanicalCompanyLlcMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_yiOzadc_tEql1zP6BwWAzA"
      decimals="3"
      id="Narr_m60epLoslki_WNIOI6dv0A"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g"
      decimals="-5"
      id="Narr_MyggrL7VF0-OmcmY4arz2g"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10000000.0</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_jMPSvcsH-U-bk5z-Y9pP3g"
      decimals="3"
      id="Narr_kYasGQBDn0mfaINuLaMgvA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg"
      decimals="-5"
      id="Narr_ZYQNsap5Bk2niFhhM8zAag"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2000000.0</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_vxhTcjgCIECw7SaYG8dBVg"
      decimals="3"
      id="Narr_WphEs9vYzUWe0_Q7PlVPpw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.040</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:NumberOfBusinessesAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_NotesPayableOtherPayablesMember_3TceZDXMdk28FCIkhn0bqQ"
      decimals="0"
      id="Narr_Rq1JHXGjbEqXHhvgw9iKUQ"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">6</us-gaap:NumberOfBusinessesAcquired>
    <us-gaap:NotesAndLoansPayable
      contextRef="As_Of_12_31_2021_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_TCGtcfu8HUu1XCBfxeU4QA"
      decimals="-5"
      id="Narr_jQNX1hPHwEmKXa6C2HnWsg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">20400000</us-gaap:NotesAndLoansPayable>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_SZhX28GSYEOR7KY9ezPUDA"
      decimals="3"
      id="Narr_sxGLnNto9UqcBnuwS3aqZg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.023</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_us-gaap_DebtInstrumentAxis_us-gaap_LoansPayableMember_J7SWYOC9fUCHryuapvnRqA"
      decimals="3"
      id="Narr_QgKQhVJ9UEC1iPUZ2oXsmg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.035</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_N8cALErS8E-mK1E3CXET8Q">&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;10. Leases&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;We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. As of December 31, 2021, the lease liabilities associated with these &lt;span style="-sec-ix-hidden:Hidden_FgMkO2rf00CIiBtTbwWcSQ;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;finance leases&lt;/span&gt;&lt;/span&gt; were $0.3 million. Leases with an initial term of 12 months or less are not recorded in the 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 some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $11.9 million in 2021, $7.7 million in 2020 and $8.4 million in 2019. 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 December 31, 2021 and 2020 was 4.0% and 4.2%, 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 years ended December 31, 2021, 2020 and 2019 was $34.2 million, $28.2 million and $24.8 million, respectively.&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 lease terms generally range from &lt;span style="-sec-ix-hidden:Hidden_Jy-T07AOW0GkRD4aV4OpIQ;"&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. The weighted average remaining lease term for our operating leases was 8.7 years at December 31, 2021 and 7.5 years at December 31, 2020.&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;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 years ended December 31, 2021, 2020 and 2019 was approximately $4.9 million, $4.2 million and $3.7 million, respectively.&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;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;/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;Finance lease right-of-use assets are included in &#x201c;Property and equipment, net,&#x201d; and current and long-term finance lease liabilities are included within &#x201c;Current maturities of long-term debt&#x201d; and &#x201c;Long-term debt, net,&#x201d; respectively, in the Consolidated Balance Sheet. 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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:61.21%;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:3.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:14.34%;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:4.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:3.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:14.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;margin:0pt;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:17.38%;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, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.04%;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.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;December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 124,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 94,727&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.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="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.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;span style="-sec-ix-hidden:Hidden_ZoYV9Ak1x0qoBQBxKtcfzA;"&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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 19,050&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 16,586&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.03%;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.34%;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; 107,701&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.03%;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.32%;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; 80,576&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 126,751&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 97,162&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;The maturities of operating lease liabilities as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:85.26%;margin:0pt;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;width:2.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;margin:0pt;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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.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;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;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.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; 23,729&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 21,142&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 18,738&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 17,642&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 14,631&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 55,161&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 151,043&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"&gt; (24,292)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 126,751&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;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:66.86%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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: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:33.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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.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: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:15.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;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:15.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;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,443&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 47,621&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;margin:0pt;padding: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,346&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_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_TnvrQzaegUOQ_ymd3hsAhQ">&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 are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. As of December 31, 2021, the lease liabilities associated with these &lt;span style="-sec-ix-hidden:Hidden_FgMkO2rf00CIiBtTbwWcSQ;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;finance leases&lt;/span&gt;&lt;/span&gt; were $0.3 million. Leases with an initial term of 12 months or less are not recorded in the 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 some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $11.9 million in 2021, $7.7 million in 2020 and $8.4 million in 2019. 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 December 31, 2021 and 2020 was 4.0% and 4.2%, 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 years ended December 31, 2021, 2020 and 2019 was $34.2 million, $28.2 million and $24.8 million, respectively.&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 lease terms generally range from &lt;span style="-sec-ix-hidden:Hidden_Jy-T07AOW0GkRD4aV4OpIQ;"&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. The weighted average remaining lease term for our operating leases was 8.7 years at December 31, 2021 and 7.5 years at December 31, 2020.&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;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 years ended December 31, 2021, 2020 and 2019 was approximately $4.9 million, $4.2 million and $3.7 million, respectively.&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;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;/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;Finance lease right-of-use assets are included in &#x201c;Property and equipment, net,&#x201d; and current and long-term finance lease liabilities are included within &#x201c;Current maturities of long-term debt&#x201d; and &#x201c;Long-term debt, net,&#x201d; respectively, in the Consolidated Balance Sheet. 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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:61.21%;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:3.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:14.34%;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:4.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:3.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:14.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;margin:0pt;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:17.38%;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, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.04%;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.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;December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 124,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 94,727&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.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="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.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;span style="-sec-ix-hidden:Hidden_ZoYV9Ak1x0qoBQBxKtcfzA;"&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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 19,050&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 16,586&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.03%;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.34%;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; 107,701&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.03%;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.32%;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; 80,576&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 126,751&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 97,162&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;The maturities of operating lease liabilities as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:85.26%;margin:0pt;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;width:2.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;margin:0pt;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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.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;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;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.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; 23,729&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 21,142&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 18,738&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 17,642&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 14,631&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 55,161&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 151,043&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"&gt; (24,292)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 126,751&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;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:66.86%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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: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:33.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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.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: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:15.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;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:15.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;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,443&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 47,621&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;margin:0pt;padding: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,346&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:FinanceLeaseLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_3DzRev5OqEacNO8QQT3FRw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">300000</us-gaap:FinanceLeaseLiability>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_iBvM-FKNKUm93lGyaiiVKg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">11900000</fix:VariableLeaseAndShortTermLeaseCost>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_LOna-0SLD0aheGjzvGxOPA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7700000</fix:VariableLeaseAndShortTermLeaseCost>
    <fix:VariableLeaseAndShortTermLeaseCost
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_Uk5liO_ZBk2c3Dd9Wbd1Qg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8400000</fix:VariableLeaseAndShortTermLeaseCost>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="3"
      id="Narr_VkJ35jRvTEySe23SgcpvQg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.040</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="3"
      id="Narr_vUIdlsVWykevZ5eFD9M8wA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.042</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_jVFbhvNID02gW872EhO8Dg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34200000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_0DM7d2bYLUmiNtYwP_Jhrw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28200000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_sg43pUEfJEe9DRm_9X3-xA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24800000</us-gaap:OperatingLeaseExpense>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_nlhjt_7QjEKUrazO_uTBYw"
      id="Narr_wCKUVvErDEWbMMFgz9tH3A">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <fix:NumberOfOptionsToRenew
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"
      decimals="INF"
      id="Narr_e9lSZFsgqkC-iqc4T4Y1CQ"
      unitRef="Unit_Standard_Option_dsaBN6XxaEiIib8B3c8M0w">1</fix:NumberOfOptionsToRenew>
    <us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_Hy3X7pzGg0iJhyPGDYqYWA">true</us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      id="Narr_xlEIMHpXVUWaA4EEqXbU_w">P8Y8M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      id="Narr_MeZZSfuTTUC7UeFodfxZkQ">P7Y6M</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:PaymentsForRent
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_WuodgcofLEWWf6mIaEhIzg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4900000</us-gaap:PaymentsForRent>
    <us-gaap:PaymentsForRent
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_hLT7K59ffkqo_DTpQHuj8Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4200000</us-gaap:PaymentsForRent>
    <us-gaap:PaymentsForRent
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_XBg2SgRxTkS_6B6ZhLwVag"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3700000</us-gaap:PaymentsForRent>
    <fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_HqruvE6bvkeI056meruUuQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Finance lease right-of-use assets are included in &#x201c;Property and equipment, net,&#x201d; and current and long-term finance lease liabilities are included within &#x201c;Current maturities of long-term debt&#x201d; and &#x201c;Long-term debt, net,&#x201d; respectively, in the Consolidated Balance Sheet. 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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:middle;width:61.21%;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:3.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:14.34%;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:4.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:3.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:14.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;margin:0pt;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:17.38%;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, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.04%;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.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;December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 124,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 94,727&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.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="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.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;span style="-sec-ix-hidden:Hidden_ZoYV9Ak1x0qoBQBxKtcfzA;"&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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 19,050&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 16,586&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.03%;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.34%;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; 107,701&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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:3.03%;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.32%;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; 80,576&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:61.21%;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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.34%;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; 126,751&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.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;span 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.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;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.32%;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; 97,162&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_6YinEK21e0izTPon87oe3Q_2_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">124756000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_B0Gh3sxE-EOPUi7CZFtGkA_2_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">94727000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_XqoXPMpfxUOoXEnWDRroHA_4_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19050000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_zJ-7N8zrUkyXLxMFt83L2Q_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16586000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_wgmz64O7NUWKoGtSu3qhaw_5_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">107701000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_tm7_Z8an3UC2iUWpooSsww_5_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">80576000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_TmTNfH_obU-vjYAYUxDBhQ_6_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">126751000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_cJPcLya3x0G48kXPUnut1A_6_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">97162000</us-gaap:OperatingLeaseLiability>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_SjjC-GXKA0y7-IT4ivMLTw">&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 as of December 31, 2021 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:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:85.26%;margin:0pt;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;width:2.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:1.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-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;margin:0pt;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:85.26%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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.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;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:10.4%;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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;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.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; 23,729&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 21,142&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 18,738&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; 17,642&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 14,631&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 55,161&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:10.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; 151,043&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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;"&gt; (24,292)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:85.26%;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.66%;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.66%;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.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; 126,751&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Xk8wcOqfgEOfC-uNK5NoIA_2_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">23729000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_W2taTApT00Cf-L0KySkEXg_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">21142000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_a6VOmA3-K0aJFgnXGgE6Wg_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18738000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_Yv8pXXoq70KkiyWV1xBWwQ_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17642000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_QsLFj8z2dki4fx4-Gu6FWw_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14631000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_5h-FZKSCU0e1S-Y5VUrGVg_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">55161000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_6m9ujoTjekCScuDXCCiqxA_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">151043000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_jk7CacD5N02bp5Ek0GQFLg_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24292000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_KU-Vu0KgaUCto0FGz426cg_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">126751000</us-gaap:OperatingLeaseLiability>
    <fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_IYqGx3djBkqjhjMGN0DLkg">&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:66.86%;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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:13.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:66.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: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:33.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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.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: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:15.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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;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:15.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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;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,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;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,443&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:middle;width:66.86%;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.97%;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:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 47,621&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size: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.97%;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:13.53%;margin:0pt;padding: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,346&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</fix:ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_XRc8rpeHtEuFoOdzrn0JXg_3_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22232000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_54sP5AbD60Wv-lW7UbaU6A_3_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">20443000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_n4wMkKXQ6UuZYXXn_ZV5mA_4_2"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">47621000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_Nm8BOUCUTk2gstKtv5mXRA_4_5"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27346000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_LRXZfVndo0O8GLSwycVbYQ">&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;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;11. Income Taxes &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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Provision for 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 0pt 12pt 0pt;"&gt;Our provision for income taxes relating to continuing operations consists of the following (in thousands):&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:96.45%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.5%;margin:0pt;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.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.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="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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.26%;margin:0pt;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:64.5%;margin:0pt;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.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;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;margin:0pt;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.43%;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.97%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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.97%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.43%;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.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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Current tax provision&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,556&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,281&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;State&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 8,741&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 12,798&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 8,388&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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 current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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; 40,024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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; 49,354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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; 41,669&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax provision (benefit)&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,197&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (5,483)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,750)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;State&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 705&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; (2,470)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; (501)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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 deferred&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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; 6,902&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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; (7,953)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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,251)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;Provision for income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;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; 46,926&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;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; 41,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;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; 37,418&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;The provision for income taxes for the years ended December 31, 2021, 2020 and 2019 resulted in effective tax rates on continuing operations of 24.7%, 21.6% and 24.7%, respectively. The reasons for the differences between these effective tax rates and the federal statutory rates are as follows (in thousands):&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:95.68%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:65.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:1.91%;margin:0pt;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.11%;margin:0pt;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:7.1%;margin:0pt;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.91%;margin:0pt;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.14%;margin:0pt;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:7.9%;margin:0pt;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.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: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.14%;margin:0pt;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:7.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-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.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-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:65.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: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.91%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:30.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.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: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.91%;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.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:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:9.04%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.73%;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.61%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Federal statutory rate of&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;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.11%;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="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:7.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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:1.14%;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:7.9%;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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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:7.47%;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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Income taxes at the federal statutory rate&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 39,958&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding: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,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,866&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Increases (decreases) resulting from&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net state income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 7,340&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,406&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,644&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Valuation allowances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; (39)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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; (254)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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; (279)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net unrecognized tax benefits&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 640&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,557&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding: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,338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Nondeductible expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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,381&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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,180&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;R&amp;amp;D tax credit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (26,133)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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,569)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;179D deduction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; (1,207)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;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; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.47%;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; (5,126)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Stock-based compensation deductions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,210)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (426)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (714)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.1%;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; 63&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.9%;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; (380)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.47%;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; 78&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Provision for income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.1%;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; 46,926&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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; 41,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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; 37,418&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/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;In the third quarter of 2019, we filed an amended federal return for 2015 to claim the credit for increasing research activities (the &#x201c;R&amp;amp;D tax credit&#x201d;) and recorded a $4.6 million tax benefit that was fully offset by an addition to unrecognized tax benefits. We previously filed an amended federal return for 2014 to claim the R&amp;amp;D tax credit during 2018 and recorded a $2.7 million tax benefit that was also fully offset by an addition to unrecognized tax benefits. These $7.3 million of tax benefits were fully offset by additions to unrecognized tax benefits due to the uncertainty of the outcome from examinations opened by the Internal Revenue Service (the &#x201c;IRS&#x201d;). As a result, the R&amp;amp;D tax credit claimed had no impact on our effective tax rates.&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;For the year ended December 31, 2019, our provision for income taxes was decreased by $2.2 million due to benefits from the filing, and expected filing, of amended returns to claim the energy efficient commercial buildings deduction (the &#x201c;179D deduction&#x201d;) allocated to us.&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;During the third quarter of 2020, the IRS completed their examination of our amended federal returns for 2014 and 2015 and issued a Revenue Agent Report (&#x201c;RAR&#x201d;) allowing the $8.9 million of refund claims in full. Subsequently, the Joint Committee on Taxation (the &#x201c;JCT&#x201d;) reviewed and approved the refund claims. As a result, our provision for income taxes was decreased by $8.3 million due to a reduction in unrecognized tax benefits.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="color:#0070c0;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;In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the R&amp;amp;D tax credit requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of our IRS examination. The R&amp;amp;D tax credit had no material impact on our effective tax rate for the year ended December 31, 2020.&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;Following an IRS survey of our previously filed refund claims for the 2016, 2017 and 2018 tax years, the JCT approved such refunds in late January 2022. Since approval was received after the Balance Sheet date, our effective tax rate was not affected for the year ended December 31, 2021. However, our provision for income taxes in the first quarter of 2022 will be decreased by $28.8 million due to a reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.&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;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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Deferred Tax Assets (Liabilities)&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;Significant components of the deferred tax assets and deferred tax liabilities as reflected on the balance sheets are as follows (in thousands):&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:67.39%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:68.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;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;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.52%;margin:0pt;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.22%;margin:0pt;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.44%;margin:0pt;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.52%;margin:0pt;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.22%;margin:0pt;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.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: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:68.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: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.44%;margin:0pt;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:27.94%;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.61%;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:68.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: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.44%;margin:0pt;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:27.94%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.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: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.44%;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.75%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.75%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax assets&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Accounts receivable and allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;margin:0pt;padding: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,878&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;margin:0pt;padding: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,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Stock-based compensation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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,392&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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,791&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Accrued liabilities and expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,255&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,761&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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; 27,944&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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,768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net operating loss carryforwards&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,379&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,127&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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,851&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 627&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Subtotal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 84,457&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 80,260&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Valuation allowances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (475)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (514)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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 deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 83,982&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 79,746&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax liabilities&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="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:68.99%;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;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (15,534)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (13,877)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (27,905)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (22,715)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Long-term contracts&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (964)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (609)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (242)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (17,321)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (11,615)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (1,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (2,626)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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 deferred tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.22%;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; (62,822)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.22%;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; (51,684)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Net deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 21,160&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 28,062&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;The deferred tax assets and liabilities reflected above are included in the Consolidated Balance Sheets as follows (in thousands):&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:42.89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:54.84%;margin:0pt;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:3.84%;margin:0pt;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.4%;margin:0pt;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:15.85%;margin:0pt;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:3.84%;margin:0pt;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.4%;margin:0pt;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:15.85%;margin:0pt;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.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: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:54.84%;margin:0pt;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:3.84%;margin:0pt;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:40.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;margin:0pt;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:3.84%;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:18.25%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:18.25%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;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,905&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;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; 29,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:54.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.85%;margin:0pt;padding: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,745&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.85%;margin:0pt;padding: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,339&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;As of December 31, 2021, we had $7.2 million of deferred tax assets related to $34.2 million of federal net operating loss (&#x201c;NOL&#x201d;) carryforwards as a result of the TAS acquisition. If not used, such carryforwards will begin to expire in 2031. We also had $3.2 million of deferred tax assets related to $61.7 million of state NOL carryforwards, including carryforwards acquired from TAS. The state NOL carryforwards will expire in varying amounts between the years 2022 and 2041. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;"&gt;Pursuant to Section 382 of the Code, utilization of our federal NOL carryforwards is subject to annual limitations due to the ownership change in TAS. In general, an ownership change, as defined by Section 382, results from transactions increasing the ownership of certain stockholders or public groups in the stock of a corporation by more than 50 percentage points over a three-year period. While we expect to fully utilize the federal NOL carryforwards acquired from TAS before they begin to expire in 2031, valuation allowances were recorded against certain of its state NOL carryforwards. We do not believe it is more-likely-than-not that TAS will have sufficient revenue-generating operations in those states in the future.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:32.4pt;margin:0pt 5.95pt 0pt 3pt;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';margin-left:0pt;margin-right: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 0pt 12pt 0pt;"&gt;Valuation allowances of $0.4 million have been recorded against certain of the state NOL carryforwards. The $2.8 million of deferred tax assets for state NOL carryforwards, net of valuation allowances, reflects our conclusion that it is more-likely-than-not these assets will be realized based upon expected future earnings in certain of our subsidiaries.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;We regularly update our assessment of the realizability of our deferred tax assets, in particular, those related to state NOL carryforwards. A return to profitability in our subsidiaries with valuation allowances would result in a release &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;of a portion of the valuation allowances relating to realizable deferred tax assets. A sustained period of profitability could cause a change in our judgment of any remaining deferred tax assets. If that were to occur, then it is likely that we would reverse some or all of the remaining valuation allowances.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Liabilities for Uncertain Tax Positions&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;A reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties, is as follows (in thousands):&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:77.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:62.6%;margin:0pt;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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.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: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:62.6%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.72%;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.53%;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:62.6%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;margin:0pt;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.13%;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.14%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 28,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 10,199&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 2,966&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additions based on tax positions related to current year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 207&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:0.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="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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additions based on tax positions related to prior years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 489&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 26,858&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 7,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Reductions for tax positions related to prior years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (240)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Reductions for settlements with tax authorities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_qeeW_Mhz_kK5lW_N8t46sw;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt; &#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt;"&gt; (8,301)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_YsyGhjT4RUuLi3Lets5Aqg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt; &#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 29,452&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 28,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 10,199&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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 0pt 12pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"/&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;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"/&gt;As of December 31, 2021, 2020 and 2019, we had $29.5 million, $28.8 million and $10.2&#160;million, respectively, of unrecognized tax benefits, which if recognized in future periods, would impact our effective tax rates. We have not accrued any amounts for potential interest and penalties related to the unrecognized tax benefits as of December 31, 2021, 2020 and 2019. We recognize potential interest and penalties related to unrecognized tax benefits in our provision for income taxes. &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;We are subject to taxation in the United States and various state jurisdictions. For the year ended December 31, 2020, our unrecognized tax benefits were reduced by $8.3 million due to a favorable settlement with the IRS for the 2014 and 2015 tax years. As of December 31, 2021, we remain open to IRS examination for the 2017 tax year forward.&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;State income tax returns are generally subject to examination for a period of three to four years after filing the returns. However, the state impact of any federal audit adjustments and/or amendments remains subject to examination by various states for up to one year after formal notification to the states. As of December 31, 2021, we generally remain open to examination by various state tax authorities for the 2017 tax year forward. &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;We will have a reduction of $28.8 million in unrecognized tax benefits in the first quarter of 2022 due to a favorable settlement with the IRS for the 2016, 2017 and 2018 tax years. Any further reductions in our unrecognized tax benefits, due to the future recognition of those tax benefits, would affect our effective tax rates. &lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_KwuNvxSuP0iWVOmFBABGdw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Our provision for income taxes relating to continuing operations consists of the following (in thousands):&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:96.45%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.5%;margin:0pt;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.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.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="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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.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: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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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: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.26%;margin:0pt;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:64.5%;margin:0pt;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.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;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;margin:0pt;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.43%;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.97%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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.97%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.43%;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.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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Current tax provision&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,556&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,281&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;State&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 8,741&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 12,798&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 8,388&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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 current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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; 40,024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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; 49,354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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; 41,669&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax provision (benefit)&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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.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;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.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;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,197&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (5,483)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,750)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;State&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; 705&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; (2,470)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.45%;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; (501)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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 deferred&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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:7.45%;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; 6,902&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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:7.45%;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; (7,953)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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:7.45%;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,251)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:64.5%;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;Provision for income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.51%;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.45%;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; 46,926&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.51%;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.45%;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; 41,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.53%;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.45%;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; 37,418&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_XRaIjGM4u0y--nSvf3SMaA_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31283000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_WEPUdQ3lu0aGcCT-Z7dRLw_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">36556000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_7IUrDEzlG02K-CTk-_D7mQ_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">33281000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_8N39U4u8e0C28YMmvcr41Q_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8741000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_eP8OzzJ4LEqF8jBRjBAsNg_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12798000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qAAvohm320KM6To23U1AMw_5_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8388000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_2CW-i_A47UemKrdp6FdapA_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">40024000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ckcxH6xg80urYNRzpao_lQ_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">49354000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_petRDbCnF0eO5MPxhUtAKg_6_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">41669000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc__8lt_1gfe0uVn-LZdlgB-Q_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6197000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_APlcikuZWUCGouFUvmOQyw_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-5483000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_7pygU9Fqf0ONbX_cqEJb3g_8_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-3750000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_ECCmwm5EKEKp9fpYlOu8ug_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">705000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_vdSscncabk-nArrKjWuWAg_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-2470000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_6IGOqU3OZ0ul4GTEbOSM2w_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-501000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_bPXhRwi6v02Ej5V95J1hhw_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6902000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_riv9r8mxuEKqOTo0sQ8z-Q_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-7953000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_K0SVGT_0kUmnkDxxl1cN1w_10_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-4251000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_5jAWCzypAkKivET4twBkug_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">46926000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_BGvuj-23XEOOwUq3riJn-A_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">41401000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_-9QQBsRpGkGYAITAkYHvLA_11_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">37418000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_prUqUgX2Qkyj34fLok25_A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The provision for income taxes for the years ended December 31, 2021, 2020 and 2019 resulted in effective tax rates on continuing operations of 24.7%, 21.6% and 24.7%, respectively. The reasons for the differences between these effective tax rates and the federal statutory rates are as follows (in thousands):&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:95.68%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:65.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:1.91%;margin:0pt;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.11%;margin:0pt;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:7.1%;margin:0pt;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.91%;margin:0pt;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.14%;margin:0pt;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:7.9%;margin:0pt;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.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: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.14%;margin:0pt;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:7.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-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.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-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:65.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: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.91%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:30.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.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: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.91%;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.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:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:9.04%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.73%;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.61%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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:65.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Federal statutory rate of&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;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.11%;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="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:7.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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:1.14%;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:7.9%;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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.14%;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:7.47%;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; 21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Income taxes at the federal statutory rate&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 39,958&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding: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,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,866&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Increases (decreases) resulting from&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net state income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 7,340&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,406&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,644&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Valuation allowances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; (39)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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; (254)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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; (279)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net unrecognized tax benefits&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; 640&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,557&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;margin:0pt;padding: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,338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Nondeductible expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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,381&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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,180&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;R&amp;amp;D tax credit&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (26,133)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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,569)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;179D deduction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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; (1,207)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;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; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.47%;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; (5,126)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Stock-based compensation deductions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,210)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (426)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.47%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (714)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:65.39%;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;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.1%;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; 63&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.9%;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; (380)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.47%;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; 78&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;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:65.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Provision for income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.11%;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.1%;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; 46,926&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.14%;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.9%;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; 41,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.14%;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.47%;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; 37,418&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Narr_klXiEzQBsUSyjQvWsMLb7w"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.247</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="3"
      id="Narr_skvB-4zlIUC0K9egGCEpzw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.216</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="3"
      id="Narr_8nVkHtGKf0SBuHM0NPKexw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.247</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="2"
      id="Tc_zeKjpxjnvEaUpGr0qgzwAg_3_3"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="2"
      id="Tc_Ss321d1sUU-JzLGYn5MaDw_3_6"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="2"
      id="Tc_TQhahOL1KU-OVsAmvD8z2w_3_9"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_lFD0V_g2Ik24ggG9UYgglg_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">39958000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_jVHvUXrXDk2jBIBn5uOJIA_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">40223000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_gyO1fWgQo0-C6xDoPbf4hA_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31866000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_-0uN4T6weEy1o2CTAQnsGw_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7340000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_arEE-laAfEKPS8xroHY2-Q_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8406000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_d6mMnvUH6E-Uv7LeXcHslQ_6_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6644000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_XtxyqPhrXkSWVJSo9GjJ0Q_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-39000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_bVRxck-IDkKTecHv3kcvPg_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-254000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_1fiD0QJGjkCg5VIMwx3Jww_7_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-279000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationTaxContingencies
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_emn22-rVnUSOj-v-1PRJnw_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">640000</us-gaap:IncomeTaxReconciliationTaxContingencies>
    <us-gaap:IncomeTaxReconciliationTaxContingencies
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_fp3wmJPpzUCCFKXZoVGDyg_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">18557000</us-gaap:IncomeTaxReconciliationTaxContingencies>
    <us-gaap:IncomeTaxReconciliationTaxContingencies
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_QKx5Vc-RhUe7vXUU2_lEcQ_8_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7338000</us-gaap:IncomeTaxReconciliationTaxContingencies>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_WOG6Q-eaO0-Ya96UfNaa_g_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2381000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_fbgRM-SD8kKThhWJnKMerg_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2470000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_jvlpK25BREmOLJlNFb_fFg_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2180000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_64d1a3JpGE6s96vPuCW0zQ_10_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">26133000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_NM9VIDSzaUmLnJ9gOKJczA_10_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4569000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <fix:IncomeTaxReconciliationSection179dDeduction
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_NCW9xf_K7EKbKlHKMzm95w_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1207000</fix:IncomeTaxReconciliationSection179dDeduction>
    <fix:IncomeTaxReconciliationSection179dDeduction
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_KmnXct3c3UOB1BFdbdNxjA_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1062000</fix:IncomeTaxReconciliationSection179dDeduction>
    <fix:IncomeTaxReconciliationSection179dDeduction
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_bRUd-be1sUCkhLNe0LWhng_11_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5126000</fix:IncomeTaxReconciliationSection179dDeduction>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_3yjQUNFGJEGDN7yTTq7Ctg_12_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-2210000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_yCGO8gNqJ0GTOmLvZpi40Q_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-426000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_kbt_d0D0H0yrc9VZQs5Y4w_12_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-714000</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_I_ygS6E5tk2lgNqFA3-ctA_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">63000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_OA4WO91nIkGjlAePtz6g8g_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">-380000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_O1nqk4t_akWqqjdU1PHIQA_13_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">78000</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_SqDh9wKA4U-yRTbhRyMcqg_14_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">46926000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_G0IkFWbfr0-pCHAxkTYlYw_14_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">41401000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_qofq5msV90qmTNN6zM-srw_14_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">37418000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_7_1_2019_To_9_30_2019_zNRK5BKIsE6EkWb207MkPg"
      decimals="-5"
      id="Narr_bblOvUaQoESrFMiICn9mzA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4600000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_1_1_2018_To_12_31_2018_6B76gRgqekyF7BTGXtPV5A"
      decimals="-5"
      id="Narr_03CNqF3RtUeTo_vdBM_0fQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2700000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg"
      decimals="-5"
      id="Narr_HTOF4RIpQkahJrCthMzKlA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7300000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <fix:IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_2W-_tG9y6k2KTuTDO6UfSw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2200000</fix:IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies>
    <us-gaap:IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority
      contextRef="As_Of_9_30_2020_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_M5Au-W_Ubk2x31vaTGd5kw"
      decimals="-5"
      id="Narr_vG7N_ZXttE6Y4pvEvJXNXQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8900000</us-gaap:IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="Duration_7_1_2020_To_9_30_2020_cSLEIKVeUE-xMx9fKA6UYg"
      decimals="-5"
      id="Narr_AimM3DbVQUGDZKPP_Lw_yw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8300000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2016Member_SCaKsNy-BEaoPjyM0b9Nbw"
      decimals="-5"
      id="Narr_gd9tPygJekuQi9tK90JCMA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9800000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2017Member_YhPRpAVlh0iWjzAJl-7lpQ"
      decimals="-5"
      id="Narr_cMEqYCRgz0WEPGeliMryWw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9500000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_us-gaap_TaxYear2018Member_EXAQ6l6KZEmmvwoMAZXH_w"
      decimals="-5"
      id="Narr_irJHFc_QIUCKmAIvo-AHpg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">11900000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxCreditCarryforwardAxis_fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_5D0tgvjB3EueSdv0DRNTBw"
      decimals="-5"
      id="Narr_BkKq3_Xmn02QSHuoaPuobQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31200000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_10_1_2020_To_10_31_2020_us-gaap_TaxPeriodAxis_fix_TaxYears2016To2018Member_o9XNW7IAuUWHyBzMBoG5hQ"
      decimals="-5"
      id="Narr_B3qaD41NmUO3H2TxqTiUVw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28800000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible
      contextRef="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg"
      decimals="-5"
      id="Narr_HjTj_vWLT0ymi9_A2HVvPw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28800000</us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible>
    <fix:InterestIncomeOnIncomeTaxRefundsNet
      contextRef="Duration_1_1_2022_To_3_31_2022_srt_StatementScenarioAxis_srt_ScenarioForecastMember_vjmHLjEnfEe7F0AsMXTz4w"
      decimals="-5"
      id="Narr_m7rMAyBLjk66rNQ2AKnYBw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1600000</fix:InterestIncomeOnIncomeTaxRefundsNet>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_7-IcgIuNA0msL_E39QbjhQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;Significant components of the deferred tax assets and deferred tax liabilities as reflected on the balance sheets are as follows (in thousands):&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:67.39%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:68.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;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;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.52%;margin:0pt;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.22%;margin:0pt;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.44%;margin:0pt;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.52%;margin:0pt;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.22%;margin:0pt;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.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: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:68.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: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.44%;margin:0pt;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:27.94%;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.61%;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:68.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: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.44%;margin:0pt;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:27.94%;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, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.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: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.44%;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.75%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;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.75%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.61%;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:68.99%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax assets&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Accounts receivable and allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;margin:0pt;padding: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,878&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;margin:0pt;padding: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,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Stock-based compensation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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,392&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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,791&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Accrued liabilities and expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,255&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,761&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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; 27,944&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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,768&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Net operating loss carryforwards&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,379&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;margin:0pt;padding: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,127&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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,851&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;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:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 758&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 627&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Subtotal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 84,457&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; 80,260&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Valuation allowances&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (475)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (514)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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 deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 83,982&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 79,746&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax liabilities&#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.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="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:68.99%;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;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (15,534)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (13,877)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (27,905)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (22,715)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Long-term contracts&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (964)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (609)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding: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.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (242)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (17,321)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (11,615)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"&gt;Other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (1,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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:11.22%;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; (2,626)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;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 deferred tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.22%;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; (62,822)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.22%;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; (51,684)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:68.99%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"&gt;Net deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 21,160&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.52%;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.22%;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; 28,062&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_amuRpP5Zq0Szg1S3wfzm_A_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1878000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_t2EA7YYc_UqeA-iVpnK10Q_5_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2186000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_16T1P3LtRUO9t_ow4DA9bw_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3392000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_-A3kLtogIk-oStovYg2GdQ_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2791000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_vqRuYlz0S0ORyc3Y62ZHjQ_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">36255000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_z12NaoQolkaIoBnxy72mbQ_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">39761000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <fix:DeferredTaxAssetsLeaseLiability
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_QZ_CS_TIXkSfLJE_W7IExQ_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27944000</fix:DeferredTaxAssetsLeaseLiability>
    <fix:DeferredTaxAssetsLeaseLiability
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_0Poqukqz4UWLX-OWQ2q6Tw_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22768000</fix:DeferredTaxAssetsLeaseLiability>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_shtkNltLSEe5Z6PUn5lR6Q_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10379000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_NKDnAQhkFEmedaA4yDnYoQ_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12127000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_y1dmO83Sk02t0EpmedmB7Q_10_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3851000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_YSnl0CaEDUK-mPcFKWVnFg_11_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">758000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_Xs0blxOgPE6lAb8EZGROgQ_11_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">627000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_4-UB7q7muEq6yUsJgQmWeg_12_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">84457000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_GpV9j5qYdkuww8EBNKrDSw_12_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">80260000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_7aX4O4opgkW9PHbpzm2-fw_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">475000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_0IYtYg7L4kGaslfgMr_FSw_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">514000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_r15SCH8yJUiHL568nNQsVQ_14_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">83982000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_2JE3Ekmn50COM5D1mGk9zA_14_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">79746000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_m3OQhOuEVUmEehRKFVjLWA_16_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">15534000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_3oclHRq4ZEChAlSYBxlK5A_16_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">13877000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesLeasingArrangements
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_ak6UaJ6QIUSavnpiHtnmVg_17_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27905000</us-gaap:DeferredTaxLiabilitiesLeasingArrangements>
    <us-gaap:DeferredTaxLiabilitiesLeasingArrangements
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_BR20YE2c2kiSpm0aiASXuQ_17_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22715000</us-gaap:DeferredTaxLiabilitiesLeasingArrangements>
    <fix:DeferredTaxLiabilitiesLongTermContracts
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_7zZQUbuoDUqICVYFOJPh-Q_18_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">964000</fix:DeferredTaxLiabilitiesLongTermContracts>
    <fix:DeferredTaxLiabilitiesLongTermContracts
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_Ffr-3QtWsE-wr8nlJadycQ_18_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">609000</fix:DeferredTaxLiabilitiesLongTermContracts>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_-LpP4VTkoU6CzDdrFHaU4g_19_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">242000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_mWiJmJy79UWSb8CbnkuR1A_20_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">17321000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_xnGL4OKk8U-RioWAak2XsA_20_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">11615000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_rP7RjZyeekmQE8stooNGFw_21_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1098000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_7hc6RBhUHk-IaFLa9nNj7Q_21_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2626000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_usHL4rFloEWJKlOmho4aTw_22_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">62822000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_zQLR1yOrU0SQRI63M8EC2g_22_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">51684000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_S3AKhFYuJUeJnbAC3_P6rg_23_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">21160000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_VBv4WyAJcUOLbzWEnIj66w_23_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28062000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <fix:ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_oJwBWVJbF0-bbVVtWjqvZA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The deferred tax assets and liabilities reflected above are included in the Consolidated Balance Sheets as follows (in thousands):&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:42.89%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:54.84%;margin:0pt;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:3.84%;margin:0pt;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.4%;margin:0pt;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:15.85%;margin:0pt;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:3.84%;margin:0pt;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.4%;margin:0pt;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:15.85%;margin:0pt;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.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: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:54.84%;margin:0pt;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:3.84%;margin:0pt;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:40.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;margin:0pt;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:3.84%;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:18.25%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;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:18.25%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;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:54.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;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,905&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:2.4%;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.85%;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; 29,401&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.96%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:54.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Deferred tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.85%;margin:0pt;padding: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,745&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.4%;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.85%;margin:0pt;padding: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,339&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</fix:ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_9r38F89kjkOwihwAw2XApA_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22905000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_rYJfRxVMxUe8OjCYai1ltA_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29401000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_lZ6196biP0CSELWr77M9dA_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1745000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_orQXjpYSF0Klcljy5A6TXg_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1339000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_6g3XGJ-SIkKgb-5nyEUaEA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7200000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_NvMtvyRE0kivbU5z_rcaxQ"
      decimals="-5"
      id="Narr_R05-icgAlEKdXfFNFY3chw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">34200000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_xvzjJ-yQzkiIzi7vdIq9Wg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3200000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw"
      decimals="-5"
      id="Narr_lhx_tXZdyEa3HjU2plaIOw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">61700000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_OrX3k8Mra0SMowQ1DM179A"
      decimals="-5"
      id="Narr_xiPoVl6Na0yq-QUJuEIA_A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">400000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="As_Of_12_31_2021_us-gaap_IncomeTaxAuthorityAxis_us-gaap_StateAndLocalJurisdictionMember_2bSi2Ik72kmmXgvDkdXPdw"
      decimals="-5"
      id="Narr_nHlYlbZP806Rq-meJMfYnw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2800000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_891xdvw5qkOoQX9JXP7mTw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;A reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties, is as follows (in thousands):&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:77.14%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:62.6%;margin:0pt;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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.13%;margin:0pt;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.33%;margin:0pt;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.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: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.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: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:62.6%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.72%;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.53%;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:62.6%;margin:0pt;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.13%;margin:0pt;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="8" style="vertical-align:bottom;white-space:nowrap;width:34.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;December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;margin:0pt;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.13%;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.14%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;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.14%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.53%;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:62.6%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 28,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 10,199&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 2,966&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additions based on tax positions related to current year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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; 207&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:0.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="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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Additions based on tax positions related to prior years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 489&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 26,858&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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:8.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; 7,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Reductions for tax positions related to prior years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.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:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (240)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Reductions for settlements with tax authorities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_qeeW_Mhz_kK5lW_N8t46sw;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt; &#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt;"&gt; (8,301)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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.33%;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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.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;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_YsyGhjT4RUuLi3Lets5Aqg;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt; &#x2014;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:62.6%;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 year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 29,452&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 28,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.33%;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:8.81%;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; 10,199&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_fRkw9h0c5EK2LajII7reQQ_4_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28756000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_jQaruQhttU-eSjZbg16-BA_4_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10199000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2018_zajS2IbnxEC86HA4C5wtAg"
      decimals="-3"
      id="Tc_KciPppfEFE6TYqqW2fClcg_4_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2966000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_IZk4Ol4nc0Wv5AcD_0h4OA_5_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">207000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_-OP8MQJPHUm96-RJZL4XDg_6_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">489000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_KPi7E8yQJUShahqdT9pjQw_6_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">26858000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_Su_J9O_QzkyfCjuKR0F6FQ_6_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">7473000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_xOJICnpbsUaRrUz0s_hD2A_7_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">240000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_yvfcxwLnLkWgBXBB41hcfw_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8301000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_O0_AjAhD5UmtxtjDKNHdpw_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29452000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_pHu41R298U2H6lmAuWIpBg_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28756000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_hJihUUUfZkmPWQ-hLMOGFA_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10199000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_Ce19T1JJjUuRK2aTegR5pg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">29500000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_bu-RDp-JGUORuTysV0bFhg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28800000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-5"
      id="Narr_SUO71M2pQkOOAnuHKjRdlg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10200000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-5"
      id="Narr_rmyK4Seve0mG5ATNBsMD1Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_9Ef7SNBD2UiHMM_JwKU3_g"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_0NZXaX35bUSP13SRizIfAQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_I6ftadGwH0emxDrr-UXITA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">8300000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible
      contextRef="As_Of_3_31_2022_U7gqFRqebkmD2Skn6g6Ovg"
      decimals="-5"
      id="Narr_kRDYFDBWgkKbrYaQkvjIOQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28800000</us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible>
    <us-gaap:CompensationAndEmployeeBenefitPlansTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_PDRjPDjVFUWY-Vm50EgWgg">&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;12. Employee Benefit Plans&lt;/b&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;We and certain of our subsidiaries sponsor various retirement plans for most full-time and some part-time employees. These plans primarily consist of defined contribution plans. The defined contribution plans generally provide for contributions up to 2.5% of covered employees&#x2019; salaries or wages. These contributions totaled $16.1&#160;million in 2021, $16.3&#160;million in 2020 and $14.2&#160;million in 2019. Of these amounts, approximately $0.6 million and $0.5 million were payable to the plans at December&#160;31, 2021 and 2020, respectively.&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;Certain of our subsidiaries also participate or have participated in various multi-employer pension plans for the benefit of employees who are union members. As of December&#160;31, 2021 and 2020, we had 5 and 6, respectively, who were union members. There were no contributions made to multi-employer pension plans in 2021, 2020 or 2019. The data available from administrators of other multi-employer pension plans is not sufficient to determine the accumulated benefit obligations, nor the net assets attributable to the multi-employer plans in which our employees participate or previously participated. &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"&gt;Certain individuals at one of our operating units are entitled to receive fixed annual payments that reach a maximum amount, as specified in the related agreements, for a 15 year period following retirement or, in some cases, the attainment of 65 years of age. We recognize the unfunded status of the plan as a non-current liability in our Consolidated Balance Sheet. Benefits vest 50% after ten years of service, 75% after fifteen years of service and are fully vested after &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;20 years of service. We had an unfunded benefit liability of $4.0&#160;million recorded as of both December&#160;31, 2021 and 2020.&lt;/p&gt;</us-gaap:CompensationAndEmployeeBenefitPlansTextBlock>
    <fix:DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="3"
      id="Narr_XvrkiHqFyUaXAJ-4u9E6-Q"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.025</fix:DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_vPBpHDooS06MGGs1U4Hopw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16100000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_FVZbXa9jEUWa1JxSq0k4-w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">16300000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_UPKBL8W8xUSmCE9sZBxy5w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">14200000</us-gaap:DefinedContributionPlanCostRecognized>
    <fix:DefinedContributionPlanAmountPayable
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_npO6QGNIrkWD5s0-Y7SqVg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">600000</fix:DefinedContributionPlanAmountPayable>
    <fix:DefinedContributionPlanAmountPayable
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_zo3lcTYkdUqXQqTErRBz4A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">500000</fix:DefinedContributionPlanAmountPayable>
    <fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_mM7Ty5BezUew1a7JfshBtw"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">5</fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers>
    <fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="INF"
      id="Narr_N1RaqUjSHUauLXSRHeWrzQ"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">6</fix:MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers>
    <us-gaap:MultiemployerPlanPensionInsignificantPlanContribution
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_1b9tA1l1CEC1fsiW25AXuQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:MultiemployerPlanPensionInsignificantPlanContribution>
    <us-gaap:MultiemployerPlanPensionInsignificantPlanContribution
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_20mF6Xd-_0WahsnqKBe3Ww"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:MultiemployerPlanPensionInsignificantPlanContribution>
    <us-gaap:MultiemployerPlanPensionInsignificantPlanContribution
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_ZVaIroW830WpxgA5OM5NJQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:MultiemployerPlanPensionInsignificantPlanContribution>
    <fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_VVSEkSKOgUm9WJQ-nlQfQA">P15Y</fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments>
    <fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_RQmfwT2qO0y7gyBIwYWV4g">P15Y</fix:DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments>
    <fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_I9F5qTEJxE2UFksvkKFRow">P65Y</fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments>
    <fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_6bAO7OpFrk2sqnww2c9RnQ">P65Y</fix:DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments>
    <fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="2"
      id="Narr_-VYbX9QiBkuU5x3FitnAJw"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.50</fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService>
    <fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_Ofk1M5SRc0yaDHdBLFSfoQ">P10Y</fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested>
    <fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="2"
      id="Narr_0rWRUJOOR0Si1s_-8F4xnA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.75</fix:DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService>
    <fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr__gazH2cstk-Choie3uE0QA">P15Y</fix:DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested>
    <fix:DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Narr_s9DhzY13WkGo0tbsLCMnfw">P20Y</fix:DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested>
    <us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-5"
      id="Narr_-Qr5SXoWeUaO3qvI1b2Pmw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4000000.0</us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent>
    <us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_Tv59I4XwMES8vglo3JxBdg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4000000.0</us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb__wGiyoxRmkKhcWNMWjFrnw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;13. 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:12pt 0pt 12pt 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 0pt 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable.  The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent.  We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered.  We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months.  As of December 31, 2021, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; 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 12pt 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 0pt 12pt 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. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.&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;Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 15% to 25% 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 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 0pt 12pt 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 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 0pt 12pt 0pt;"&gt;Our self-insurance arrangements as of December 31, 2021 were as follows:&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Workers&#x2019; Compensation&#x2014;&lt;/i&gt;The per-incident deductible for workers&#x2019; compensation is $250,000. Losses above $250,000 are determined by statutory rules on a state-by-state basis and are fully covered by excess workers&#x2019; compensation insurance.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Employer&#x2019;s Liability&#x2014;&lt;/i&gt;For employer&#x2019;s liability, the per-incident deductible is $250,000 and then we have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as general liability and auto liability noted below).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;General Liability&#x2014;&lt;/i&gt;For general liability, the per-incident deductible is $250,000. We are fully insured for the next $10.0&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as employer&#x2019;s liability noted above and auto liability noted below).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Auto Liability&#x2014;&lt;/i&gt;For auto liability, the per-incident deductible is $250,000. We are fully insured for the next $10.0&#160;million of each loss, and then have several layers of excess loss insurance policies that cover losses up to $150.0&#160;million in aggregate across this risk area (as well as employer&#x2019;s liability and general liability noted above).&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;i style="font-style:italic;"&gt;Employee Medical&#x2014;&lt;/i&gt;We have three medical plans. The deductible for employee group health claims is $350,000 per person, per policy (calendar) year for &lt;span style="-sec-ix-hidden:Hidden_YtnPa85EZUG1LYw17wGRBw;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;each&lt;/span&gt;&lt;/span&gt; &lt;span style="-sec-ix-hidden:Hidden_STJq7lThfkubfTudKLui7w;"&gt;&lt;span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;plan&lt;/span&gt;&lt;/span&gt;. Insurance then covers any responsibility for medical claims in excess of the deductible amount.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 36pt;"&gt;Our $150.0&#160;million of aggregate excess loss coverage above applicable per-incident deductibles represents one policy limit that applies to all lines of risk; we do not have a separate $150.0&#160;million of excess loss coverage for each of general liability, employer&#x2019;s liability and auto liability.&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <fix:LossContingencyLetterOfIntentUnderDisputeNumber
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA"
      decimals="INF"
      id="Narr_teyJuO5Xk0uZ-X0J6xYorg"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">2</fix:LossContingencyLetterOfIntentUnderDisputeNumber>
    <us-gaap:LossContingencyDamagesSoughtValue
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_CounterpartyNameAxis_fix_CustomerMember_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_Mbc2I9cwlU2yiu47XX-7yw"
      decimals="-5"
      id="Narr_o0KcEZ2GlUezrSWDYpMLqA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">12000000</us-gaap:LossContingencyDamagesSoughtValue>
    <fix:LossContingencyDamagesStatedValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA"
      decimals="-5"
      id="Narr_JSqhcPzb60aC3DFau87Slg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">9000000</fix:LossContingencyDamagesStatedValue>
    <fix:PercentageOfBusinessWhichHasRequiredBonds
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_RutgiWxKtUmym0RBAhJ6JA"
      decimals="2"
      id="Narr_Sh11s_R-zkqUD3xDVmU4Zg"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.15</fix:PercentageOfBusinessWhichHasRequiredBonds>
    <fix:PercentageOfBusinessWhichHasRequiredBonds
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_SuretyBondMember_v1DvR0XCTE6OEwD3U51ljg"
      decimals="2"
      id="Narr_XuI9x0HJ30iAmguAAhNOUQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.25</fix:PercentageOfBusinessWhichHasRequiredBonds>
    <fix:SelfInsuranceDeductibleAmountPerIncident
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA"
      decimals="0"
      id="Narr_T4bLBJuDEkSd-2136of1rg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">250000</fix:SelfInsuranceDeductibleAmountPerIncident>
    <fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_WorkersCompensationMember_mBgxC0LRM0OXPUCfZ06tRA"
      decimals="0"
      id="Narr_Z-G3iOyPXU2sPCZ2RerOJQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">250000</fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount>
    <fix:SelfInsuranceDeductibleAmountPerIncident
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_Xd2YTgeJJUmJn4FFA843Iw"
      decimals="0"
      id="Narr_4XFK79hvD0-LrYWTMsmVBw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">250000</fix:SelfInsuranceDeductibleAmountPerIncident>
    <fix:SelfInsuranceAggregateLossInsuranceCoveredAmount
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployersLiabilityMember_-GKW7Q3ip0mxigKVVAYiCQ"
      decimals="-5"
      id="Narr_NvojFi7HFUKbJY7KHK76Tw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:SelfInsuranceAggregateLossInsuranceCoveredAmount>
    <fix:SelfInsuranceDeductibleAmountPerIncident
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ"
      decimals="0"
      id="Narr_3Oz9crcrLUaxkgtU5xl-1Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">250000</fix:SelfInsuranceDeductibleAmountPerIncident>
    <fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_1andJ5b6wEi3fPYpcuzrwQ"
      decimals="-5"
      id="Narr_QoPEDDoNqUKPATIGQevzjA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10000000.0</fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount>
    <fix:SelfInsuranceAggregateLossInsuranceCoveredAmount
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_GeneralLiabilityMember_BR-evTo8skW1q-KzV_SeVw"
      decimals="-5"
      id="Narr_gh9aI-xIEkewQ2Nhnv1PDQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:SelfInsuranceAggregateLossInsuranceCoveredAmount>
    <fix:SelfInsuranceDeductibleAmountPerIncident
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ"
      decimals="0"
      id="Narr_QlDw9scec0ijDfw_kW9M4Q"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">250000</fix:SelfInsuranceDeductibleAmountPerIncident>
    <fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_PzJNK1cPbkydcx3Il2FmsQ"
      decimals="-5"
      id="Narr_PIzT2DtakkS6vvHpDY-nLw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10000000.0</fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount>
    <fix:SelfInsuranceAggregateLossInsuranceCoveredAmount
      contextRef="As_Of_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_AutoLiabilityMember_JsfG-PJXuUGAtMCB5QSbCw"
      decimals="-5"
      id="Narr_y9hg7jWXZ06OyDON0VAjJA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:SelfInsuranceAggregateLossInsuranceCoveredAmount>
    <fix:SelfInsuranceNumberOfMedicalPlans
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalMember_WP5DJYN1cke6lZSaEudAfQ"
      decimals="INF"
      id="Narr_xWACVFLc1kKBoaCJPcRhsw"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">3</fix:SelfInsuranceNumberOfMedicalPlans>
    <fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy
      contextRef="As_Of_12_31_2021_us-gaap_LossContingenciesByNatureOfContingencyAxis_fix_EmployeeMedicalPlanOneMember_TFzL1__IbUSyj03-uawq1w"
      decimals="0"
      id="Narr_YxD74NWvikGUu5zroO-9tQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">350000</fix:SelfInsuranceDeductibleAmountPerPersonPerPolicy>
    <fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_Jb9qbePBOkyevGXN6R2MVw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount>
    <fix:SelfInsuranceAggregateLossInsuranceCoveredAmount
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-5"
      id="Narr_VXefLJi_zUG-bpD_MiWvLw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">150000000.0</fix:SelfInsuranceAggregateLossInsuranceCoveredAmount>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_QqJ5n5stHUCXVVGcYeZruw">&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;14. 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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;2012 Equity Incentive Plan&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;In May 2012, our stockholders approved our 2012 Equity Incentive Plan (the &#x201c;2012 Plan&#x201d;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2012 Plan is 5.1&#160;million shares. As of December&#160;31, 2021, there were 2.9&#160;million shares available for issuance under this plan; however, following adoption of the 2017 Plan (described below), no additional shares will be issued under the 2012 Plan. We have outstanding and exercisable stock options under the 2012 Plan. The 2012 Plan will expire in May 2022. &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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;2017 Omnibus Incentive Plan&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;In May 2017, our stockholders approved our 2017 Omnibus Incentive Plan (the &#x201c;2017 Plan&#x201d;), which provides for the granting of incentive or non-qualified stock options, stock appreciation rights, restricted or deferred stock, dividend equivalents or other incentive awards to directors, employees, or consultants. The number of shares authorized and reserved for issuance under the 2017 Plan is 2.9 million shares. As of December 31, 2021, there were 1.9&#160;million shares available for issuance under this plan. The 2017 Plan will expire in May 2027. &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 12pt 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;text-indent:36pt;margin:0pt 0pt 12pt 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 December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3&#160;million shares to be repurchased. As of December&#160;31, 2021, we have repurchased a cumulative total of 9.7&#160;million shares at an average price of $21.69 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 0pt 12pt 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 year ended December 31, 2021, we repurchased 0.4&#160;million shares for approximately $27.1 million at an average price of $74.57 per share. &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 12pt 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 0pt 12pt 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 0pt 12pt 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 0pt 12pt 0pt;"&gt;There were zero anti-dilutive stock options excluded from the calculation of diluted EPS for the year ended December 31, 2021 and less than 0.1 million anti-dilutive stock options excluded from the calculation of diluted EPS for the years ended December 31, 2020 and 2019. &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;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;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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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:7.56%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.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-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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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:7.56%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.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-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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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.28%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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-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.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="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.18%;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;white-space:nowrap;width:1.91%;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.56%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.19%;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.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,091&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,658&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 196&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,285&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,542&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,854&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 204&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 76&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,738&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 37,131&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/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:EarningsPerShareTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="As_Of_5_31_2012_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member_MaOHwMApYky_GP_adjnIHA"
      decimals="-5"
      id="Narr_EgR0cySq0UekvCuYOy2vJg"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">5100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member__4F9hnKzF06tBh5Un2QPfg"
      decimals="-5"
      id="Narr_Ip1KHAB8-0KetqtPhIg8cw"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">2900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="As_Of_5_31_2017_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_X4x_ToKsyEabhYk7zXHekA"
      decimals="-5"
      id="Narr_fe4x4Rw5b06FnmIY6ECEHQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">2900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_OmnibusIncentivePlan2017Member_lqhw-ZMnekG_F5M0xEZSZw"
      decimals="-5"
      id="Narr_bG5h0nSZFkC55y_7wt0Egw"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">1900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_3_29_2007_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_XDJscgAzdUGihjM6TZH90w"
      decimals="-5"
      id="Narr_1jLrkKVlIEKY3YDtDwSykA"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">1000000.0</us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <fix:StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_12_8_2020_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_NcowEMOjcECN5l3FkBq3Zg"
      decimals="-5"
      id="Narr_6OceblBrrkeVijzDKtDZ-A"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">700000</fix:StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased>
    <us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_StPrCiBetkuLKqMF70IYjw"
      decimals="-5"
      id="Narr_8TIjLKs8Zketh9yoB39DuQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">10300000</us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg"
      decimals="-5"
      id="Narr__rLfAPsYE0icas4lIDqOQQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">9700000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="Duration_3_29_2007_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member__q1KQ5AbqkGliwgZFFPphg"
      decimals="2"
      id="Narr_KtowzGkVH0uKXifzWK_0BQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">21.69</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_HAHm8VeHFkqX3ve2F7PpQA"
      decimals="-5"
      id="Narr_K0689_CjsEyNpVT4ne8_bQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">400000</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg"
      decimals="-5"
      id="Narr_if9xM0XEB0CSvdvkmhoRgA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">27100000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_fix_StockRepurchaseProgram2007Member_prXdapQbCUO5ziJf8tJAYg"
      decimals="2"
      id="Narr_p75dik42k02eIbODUVmI8Q"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">74.57</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg"
      decimals="-5"
      id="Narr_dGLjYhyUrEuKkxFc11mE8A"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_MDW920TLfEGBXUbYyXDF-g"
      decimals="-5"
      id="Narr_qmOZaZn5rk-8CAzb3-F3OQ"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">100000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_RangeAxis_srt_MaximumMember_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_HUBuliTaLka1hi-Y0urXxA"
      decimals="-5"
      id="Narr_lrSMaFVypkOjOBAW23LSZg"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">100000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_IyF621vaN06FwLdAu8wu1g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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;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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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:7.56%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.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-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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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:7.56%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.91%;margin:0pt;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:6.94%;margin:0pt;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.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-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:70.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="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.18%;margin:0pt;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.91%;margin:0pt;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.28%;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;Year Ended December 31, &lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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-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.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="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.18%;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;white-space:nowrap;width:1.91%;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.56%;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;2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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;2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.19%;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.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,091&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,658&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 354&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 196&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,285&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,542&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,854&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 204&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 76&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.42%;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.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.91%;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.56%;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; 36,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 36,738&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.91%;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:6.94%;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; 37,131&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.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;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_29wPxUSzEkCeRdI3OBK-Tw_4_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36091000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_RqZiwW6NN0mM2PhmKuiqlg_4_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36188000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_12_31_2019_cbgTDDqswEKgolr-UgOMeg"
      decimals="-3"
      id="Tc_1wrgfLVQ80WktsHquO_KSg_4_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36658000</us-gaap:CommonStockSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_bodXblW3w0eEvtiS3UxMQA_5_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">194000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_pCn4d8MmJ0uJbgIk4kcqMw_5_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">354000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <fix:EffectOfUsingWeightedAverageCommonSharesOutstanding
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_YEIaCUYJa0GfgzbQuhD6pA_5_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">196000</fix:EffectOfUsingWeightedAverageCommonSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_hPyHzX2uEkieOAW6A1MNBw_6_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36285000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_10_XUXJCD06rW5WpP12agg_6_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36542000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_k-4nG6yEx0GI6PljU6EBzQ_6_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36854000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_p89KyY84M0CQc_Pj4L6l2g_7_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">89000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_syC6ojVM90qDNAB5afrBng_7_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">123000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_u-14K45heUuHgiZl3OmgOA_7_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">204000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_qM5_3XHIEEmW00KYIcZ4GA_8_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">76000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_SXCIgq2520q0ifTKYF1I_A_8_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">73000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_78B1LrtQFkuECOwAX050Kg_8_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">73000</us-gaap:IncrementalCommonSharesAttributableToContingentlyIssuableShares>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_2YyyaATb5k6mqqJv1goa6g_9_3"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36450000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_zoVy8jIB40OjBLVIo4pToQ_9_5"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">36738000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_grKWJm0U9k6HbPIll7npiA_9_7"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">37131000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_MFMisaChcE6zcJrckQm9Gw">&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;15. Stock-Based Compensation&lt;/b&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;Grants of stock options, restricted stock and restricted stock units, and performance share units have been, under the 2012 Plan and under the 2017 Plan, determined and administered by the compensation committee of the Board of Directors. In 2019, the Board of Directors approved a change to the structure of long-term incentive grants to remove stock options, commencing with the March 2019 equity grant. Total stock-based compensation expense was $10.6&#160;million, $6.9 million and $5.9&#160;million for the years ended December&#160;31, 2021, 2020 and 2019, respectively. Stock-based compensation expense is recognized using the straight-line method over the vesting period and generally vests over a &lt;span style="white-space:pre-wrap;"&gt;three-year&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt; vesting period. Certain awards provide for accelerated vesting when the sum of an employee's age and years of service is at least &lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;75&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;. We recognize forfeitures as they occur. Total income tax benefit recognized for stock-based compensation arrangements was $2.2&#160;million, $1.5 million and $1.3&#160;million for each of the years ended December&#160;31, 2021, 2020 and 2019. &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;&lt;span style="white-space:pre-wrap;"&gt;We generally issue treasury shares for stock options and restricted stock, unless treasury shares are not available.  Upon the vesting of restricted shares, we have allowed the holder to elect to surrender an amount of shares to meet their statutory tax withholding requirements. These shares are accounted for as treasury stock based upon the value of the stock on the date of vesting.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Stock Options&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;Stock options are accounted for as equity instruments. The fair value of each option award is estimated, based on several assumptions, on the date of grant using the Black-Scholes option valuation model. We did not grant any options in 2019, 2020 or 2021. We had no unrecognized compensation cost related to stock options and no unvested stock options as of December 31, 2021. The total fair value of options vested during the year ended December&#160;31, 2021 was $0.4&#160;million.&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;The following table summarizes activity under our stock option plans (shares in thousands):&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:50%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-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:9.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-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:3.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-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:3.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:17.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: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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-size:8pt;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:33.31%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-size:8pt;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:33.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;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:62.55%;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;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-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:9.97%;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:3.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-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:20.04%;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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;border-bottom:1px solid #000000;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;Stock Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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;Shares&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;Exercise Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Outstanding at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; 268&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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.53&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; (198)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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.95&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Expired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Outstanding at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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; 34.97&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Options exercisable at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:17.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 0pt;"&gt;The total intrinsic value of options exercised during the years ended December&#160;31, 2021, 2020 and 2019 was $10.8&#160;million, $3.2 million and $3.5&#160;million, respectively. As of December&#160;31, 2021, we have 0.1&#160;million options outstanding and exercisable; these options have a weighted-average exercise price of $34.97 per share, have a weighted-average remaining contractual term of &lt;span style="white-space:pre-wrap;"&gt;5.0&lt;/span&gt;&lt;span style="white-space:pre-wrap;"&gt;&#160;years and an aggregate intrinsic value of $4.5&#160;million. &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;The following table summarizes information about stock options outstanding at December&#160;31, 2021 (shares in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.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: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:14.83%;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:12.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.16%;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%;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.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.62%;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:49.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 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-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:46.16%;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;Options&#160;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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;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: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.83%;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;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: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:12.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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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:2%;margin:0pt;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:10.63%;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:1.62%;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:49.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 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-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:14.83%;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;Number&lt;/b&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-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:12.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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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%;margin:0pt;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:10.63%;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:1.62%;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:49.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 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-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:14.83%;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;Outstanding and&lt;/b&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-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:12.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;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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.64%;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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.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 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-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:14.83%;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;Exercisable at&lt;/b&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-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:12.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;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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.64%;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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;border-bottom:1px solid #000000;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;Range&#160;of&#160;Exercise&#160;Prices&lt;/b&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: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.83%;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;12/31/2021&lt;/b&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: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:12.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;Life (in years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.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;Exercise&#160;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$16.15 - $30.36&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;28&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;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.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.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 3pt 0pt 0pt;"&gt; 28.13&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:49.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$36.25 - $54.38&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding: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.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.63%;margin:0pt;padding: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.44&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$16.15 - $54.38&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;70&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;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.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.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 3pt 0pt 0pt;"&gt; 34.97&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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;text-indent:36pt;margin:0pt 0pt 12pt 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 0pt 12pt 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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Restricted Stock and Restricted Stock Units&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;The following table summarizes activity under our restricted stock plans (shares in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.23%;margin:0pt;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.08%;margin:0pt;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.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-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.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="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.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: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:71.84%;margin:0pt;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.4%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.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;white-space:pre-wrap;"&gt;December 31,  2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;margin:0pt;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:14.08%;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;Weighted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;margin:0pt;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:14.08%;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;Average&#160;Grant&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;border-bottom:1px solid #000000;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;Restricted&#160;Stock&#160;and&#160;Restricted&#160;Stock&#160;Units&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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;Shares&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.08%;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;Date&#160;Fair&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Unvested at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45.21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:9.23%;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; 67&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;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; 76.73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (72)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 54.53&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:9.23%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Unvested at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;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;115&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57.74&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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;text-indent:36pt;margin:0pt 0pt 12pt 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;Approximately $1.5&#160;million of compensation expense related to restricted stock and restricted stock units will be recognized over a weighted-average period of 1.8&#160;years. The total fair value of shares vested during the year ended &lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;December&#160;31, 2021 was $3.9&#160;million. The weighted-average fair value per share of restricted stock shares and units awarded during 2021, 2020 and 2019 was $76.73, $39.03 and $51.02, respectively. The aggregate intrinsic value of restricted stock vested during the years ended December&#160;31, 2021, 2020 and 2019 was $5.5 million, $2.9&#160;million and $3.5 million, respectively.&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 12pt 36pt;"&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;Performance Stock Units&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;Under the 2012 Plan and the 2017 Plan, we granted dollar-denominated performance vesting restricted stock units (&#x201c;PSUs&#x201d;), which cliff vest at the end of a three-year performance period. The PSUs are subject to two performance measures; 50% of the PSUs are based on the annual performance of our stock price relative to a group of our peers (total shareholder return) and 50% of the PSUs are measured based on meeting or exceeding a pre-determined annual earnings per share target as set by our Board of Directors (EPS). Depending on the Company&#x2019;s performance in relation to the established performance measures, the awards may vest at zero to a maximum of 2.0 times the dollar-denominated award granted at target. Upon achievement of the necessary performance metrics, the award will be determined in dollars and may be settled in cash or stock based on the market price of the Company&#x2019;s common stock at the end of the performance period, at our discretion.&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;Compensation expense for dollar-denominated performance units will ultimately be equal to the final dollar value awarded to the grantee upon vesting, settled either in cash or stock. However, throughout the performance period we must record and accrue expense based on an estimate of that future payout. For units determined by EPS performance, the awards are evaluated quarterly against established targets in order to estimate the liability throughout the vesting period. For units determined by total shareholder return performance, a Monte Carlo simulation model was used to estimate accruals throughout the vesting period. The model simulates our total shareholder return and compares it against our peer group over the three-year performance period to produce a predicted distribution of relative share performance. This is applied to the reward criteria to give an expected value of the total shareholder return element. The calculated fair market value as of December 31, 2021 was $10.2 million. Of this amount, $3.6 million relates to the PSUs granted in 2019 whose performance period ended December 31, 2021. These awards will be settled within the upcoming year either in cash or stock. The expense related to performance stock units for the years ended December&#160;31, 2021, 2020 and 2019 was $5.7 million, $2.7 million and $1.9&#160;million, respectively. At the December 31, 2021 calculated fair market value, approximately $1.1&#160;million of compensation expense related to performance stock units will be recognized over a weighted-average period of 1.4&#160;years. &lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_JgzxcMieME-az6OXmXJ9-A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10600000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_GFmWkjhKcECWce-BdvjHeg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">6900000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_T-lULPnn70mVfNqhFIkWzQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5900000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      id="Narr_NwREXGko9kuTxvk9yjo8Fw">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <fix:ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_r8s8RgGtlEKTa7pLq5rasA"
      id="Narr_SPiWMlj970GzyHjiIqG75Q">P75Y</fix:ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-5"
      id="Narr_q_0mRh1J8EmW6c5HJoza3A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2200000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-5"
      id="Narr_A-_zQwXOkkGHMB7dE8exsw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1500000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-5"
      id="Narr_k95zC_xM2EWDAHKxdfZHyg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1300000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="-5"
      id="Narr_4kF1wulvNkq3HaT2H_oZCg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="INF"
      id="Narr_lsL3-PJK2E6ixNlsvbn53w"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      decimals="-5"
      id="Narr_NpMYQqtbfkOdvACzBtgEqw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_h9fbpRQOH0617FrpLsMUqw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The following table summarizes activity under our stock option plans (shares in thousands):&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:50%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-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:9.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-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:3.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-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:3.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:17.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: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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-size:8pt;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:33.31%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-size:8pt;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:33.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;December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:62.55%;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;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;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:3.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-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:9.97%;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:3.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-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:20.04%;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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;border-bottom:1px solid #000000;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;Stock Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.97%;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;Shares&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:20.04%;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;Exercise Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Outstanding at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; 268&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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.53&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; (198)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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.95&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Expired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;margin:0pt;padding: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:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Outstanding at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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:9.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; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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:17.02%;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; 34.97&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:62.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Options exercisable at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;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.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; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.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:3.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:17.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg"
      decimals="-3"
      id="Tc_KjdhsjjyVUOXoR2oBHpQIQ_6_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">268000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_PNZfgji2ukuFY_jXFW4vKg"
      decimals="2"
      id="Tc_4KeU5dMlWEuoa16gMYPwVA_6_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">30.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      decimals="-3"
      id="Tc_JO0ZGj-ztU-Wpo5oeYifKQ_8_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">198000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      decimals="2"
      id="Tc_qbyKu-tPjkuxGnBH--ZKTQ_8_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">28.95</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="-3"
      id="Tc_od9MIZTjtkWYGCspRA7H-w_11_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">70000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="2"
      id="Tc_lKwcQMCAVkCBf1NiYEUtkg_11_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">34.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="-3"
      id="Tc_PJcGEb7W_Uyn06miRdV8UA_12_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">70000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      decimals="-5"
      id="Narr_aDUq3teiRUys9M0cze2y-A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_MP9TuGHwgkKr3t_gkjwQfg"
      decimals="-5"
      id="Narr_3r8zkfYxekywNkPdIKt90A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_2TDYtv8R7kOzs7W1j1ve-g"
      decimals="-5"
      id="Narr_8n3vsFpkIkK3pga9DbcZ_g"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="-5"
      id="Narr_BT2bTVENHk6R3KNnXFFI3A"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="2"
      id="Narr_p2zatBW2X0KG9NMKiimJDA"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">34.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA"
      id="Narr_XOMWT2bDLk6AWTi72Rcz8w">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_jO5S2r9xNUOtGiNFlzN7gQ"
      decimals="-5"
      id="Narr_UmV5Ob6IRUOy4MRvQ9pTEA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">4500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_MbVy8o8FZ0W-eVjbVt_-0g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The following table summarizes information about stock options outstanding at December&#160;31, 2021 (shares in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:49.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: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:14.83%;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:12.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.16%;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%;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.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.62%;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:49.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 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-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:46.16%;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;Options&#160;Outstanding and Exercisable&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;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;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: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.83%;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;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: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:12.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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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:2%;margin:0pt;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:10.63%;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:1.62%;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:49.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 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-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:14.83%;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;Number&lt;/b&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-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:12.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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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%;margin:0pt;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:10.63%;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:1.62%;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:49.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 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-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:14.83%;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;Outstanding and&lt;/b&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-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:12.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;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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.64%;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;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.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 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-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:14.83%;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;Exercisable at&lt;/b&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-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:12.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;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;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.64%;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;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;border-bottom:1px solid #000000;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;Range&#160;of&#160;Exercise&#160;Prices&lt;/b&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: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.83%;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;12/31/2021&lt;/b&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: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:12.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;Life (in years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;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.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;Exercise&#160;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$16.15 - $30.36&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;28&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;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.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.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 3pt 0pt 0pt;"&gt; 28.13&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:49.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$36.25 - $54.38&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding: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.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.63%;margin:0pt;padding: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.44&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:49.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;$16.15 - $54.38&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.83%;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;70&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;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.36%;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.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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%;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.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 3pt 0pt 0pt;"&gt; 34.97&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','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:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g"
      decimals="2"
      id="Narr_HPdM7qvTpE-qh4yREiwKbA"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">16.15</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g"
      decimals="2"
      id="Narr_zX3HEyvKik-06CG_gwSeFw"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">30.36</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA"
      decimals="-3"
      id="Tc_AW9E-vbALESeKL-3R7kMVg_7_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">28000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_p2A2AKqPZ0Ka_xwC-Mw8fA"
      id="Tc_eC3BqKwBAkWDE7iA6ug-FQ_7_4">P4Y</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_sxLduKxiN0-55W6U4hRsbA"
      decimals="2"
      id="Tc_xq6yEbSc1UmK2SJi5yUOEA_7_7"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">28.13</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw"
      decimals="2"
      id="Narr_XgfuWdh9yU-_edPmKGGvng"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">36.25</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_n_zFYvjJsUuZCqxBiRmyrw"
      decimals="2"
      id="Narr_ADDocH1KqUKB9rzwvd-egg"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">54.38</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q"
      decimals="-3"
      id="Tc_04lrzYHEyEOYsdPBUt4IOA_8_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">42000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember__Ygvz9Bia0C9yTDza1KaXw"
      id="Tc_61wDOuREFUOCxCWUZ6PzRA_8_4">P5Y8M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeTwoMember_8-0eCaX3fkWhIyECk5wa-Q"
      decimals="2"
      id="Tc_C4vmQNMNlUGAYjixYv471A_8_7"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">39.44</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g"
      decimals="2"
      id="Narr_PMbp_YtQrkWTVLsU7dnOqg"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">16.15</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_s-clMmo_fkmj8qH_cV2p0g"
      decimals="2"
      id="Narr_oM1_kpmNV0qJSFHT8g05Xg"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">54.38</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng"
      decimals="-3"
      id="Tc_BvU7Qg2RyESal-s3IG4X6g_9_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">70000</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_pSGnW_R4hUqiqPqmNla8MQ"
      id="Tc__8tEf2-or0mFPPl3GhFWyA_9_4">P5Y</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeThreeMember_m7ukkijsRUm6h14uM9G9Ng"
      decimals="2"
      id="Tc_uhnlvBV3lUuu9cGGoyk39A_9_7"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">34.97</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember_AO-XwJFX90GvX7_VBZ9rCw"
      id="Tb_BSOh0oaZs0iWnggo_zLgXg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"&gt;The following table summarizes activity under our restricted stock plans (shares in thousands):&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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.23%;margin:0pt;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.08%;margin:0pt;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.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-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.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="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.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: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:71.84%;margin:0pt;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.4%;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.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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="4" style="vertical-align:bottom;white-space:nowrap;width:25.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;white-space:pre-wrap;"&gt;December 31,  2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;margin:0pt;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:14.08%;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;Weighted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;margin:0pt;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.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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.08%;margin:0pt;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:14.08%;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;Average&#160;Grant&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:71.84%;border-bottom:1px solid #000000;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;Restricted&#160;Stock&#160;and&#160;Restricted&#160;Stock&#160;Units&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.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 style="vertical-align:bottom;white-space:nowrap;width:9.23%;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;Shares&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;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.08%;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;Date&#160;Fair&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Unvested at beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;margin:0pt;padding: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&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 45.21&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:9.23%;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; 67&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;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; 76.73&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (72)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 54.53&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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:9.23%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;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; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="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:71.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Unvested at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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.23%;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;115&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span 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.66%;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.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57.74&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:0.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw"
      decimals="-3"
      id="Tc_favEGNIu6kKhUUTPp3l--w_6_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">120000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_ZSfB5QGeYEqJHik16lW-Yw"
      decimals="2"
      id="Tc_f72OSk0SvESxmmt-B3BX8A_6_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">45.21</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="-3"
      id="Tc_EdCCZl1ns06HeWtVn-ZVpQ_7_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">67000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="2"
      id="Tc_f1laUA5fJUugSERnC9wSFw_7_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">76.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="-3"
      id="Tc_9YHAAJAsfECl4wQX7PSRFA_8_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">72000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="2"
      id="Tc_J4kyY2AaJ0a42ON0c-rOaQ_8_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">54.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA"
      decimals="-3"
      id="Tc_uqDiJ8bTrEq_oyifF9lM1A_10_2"
      unitRef="Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A">115000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA"
      decimals="2"
      id="Tc_lfYaWU0TuES0Brg0wlUeLw_10_5"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">57.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_paAP9MVqgE6prZHBm4ESRA"
      decimals="-5"
      id="Narr_IQgphuXZK0uvg66BoD_MmQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      id="Narr_sOAA-tYmjkmBSCljKAGNMg">P1Y9M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="-5"
      id="Narr_tKYn1aTCW0-JZqm1R4BEIg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="2"
      id="Narr_hCpT66xrQE288xaBjvVH1w"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">76.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA"
      decimals="2"
      id="Narr_VnpDIpPrf0WDxhWJ6_6KXQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">39.03</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg"
      decimals="2"
      id="Narr_shI8lXEzWUy0Rz-V9PY8CQ"
      unitRef="Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ">51.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_6BUS8tmfqEqC6jadK1mLuw"
      decimals="-5"
      id="Narr_SmbJ-CTVSECgwXIxpqVcmg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_CAfbyJ-8_U2iV89bntM6aA"
      decimals="-5"
      id="Narr_lT6EeFSQaEuLAsUr0qUw1w"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_fix_RestrictedStockAndRestrictedStockUnitsRSUMember_xN72bNH25kKbpksNThLdRg"
      decimals="-5"
      id="Narr_015MAieYMUmVpI0qDRukLg"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      id="Narr_Ya3QuEJLsUee7NbZqnwJlw">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <fix:TypesOfPerformanceStockUnits
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="INF"
      id="Narr_1h84c95ySU-Q4vxmFgxV0g"
      unitRef="Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q">2</fix:TypesOfPerformanceStockUnits>
    <fix:PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="2"
      id="Narr_DOwk9RLBIUypK6rQU9jCgA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.50</fix:PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer>
    <fix:PercentageOfUnitsMeasuredOnPredeterminedEPS
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="2"
      id="Narr_bOKRqiFSwUuokXs6cDUCeQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0.50</fix:PercentageOfUnitsMeasuredOnPredeterminedEPS>
    <fix:PerformanceMultiplierForDollarDenominatedAwardGranted
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_TIRAAjbzQE-xstZuxMM9ww"
      decimals="0"
      id="Narr_2_D7cdRZkkm_BoV19ANRfA"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">0</fix:PerformanceMultiplierForDollarDenominatedAwardGranted>
    <fix:PerformanceMultiplierForDollarDenominatedAwardGranted
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ORtjML83106tX4PSDAn5xQ"
      decimals="1"
      id="Narr_cGbHcN-LJ0KMEdQjKsuYpQ"
      unitRef="Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ">2.0</fix:PerformanceMultiplierForDollarDenominatedAwardGranted>
    <fix:PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      id="Narr_ytB29lniiUebZNH2QKmdIQ">P3Y</fix:PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance>
    <fix:ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="-5"
      id="Narr_tFuGP-uSWke0K52noAuY5A"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">10200000</fix:ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue>
    <fix:SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="-5"
      id="Narr_JenvkldRd06qctrAPdJFuw"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3600000</fix:SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      decimals="-5"
      id="Narr_b_lxakjBIEuVaLvfzDNVSQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">5700000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2020_To_12_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_9SDAJRGL7k2bd1DHR0pMjw"
      decimals="-5"
      id="Narr_crcBeXZhO0yf3dAaHw8cpQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2700000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_1_1_2019_To_12_31_2019_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_hs1uVtRQu0GDdUMe7AiKyQ"
      decimals="-5"
      id="Narr_x1MolDpVSEC1ceAB7b38vQ"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1900000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_fPT1dRnlmUCCPgxmfZwEAw"
      decimals="-5"
      id="Narr_d-WfXdYwckOC7KhqH89IBA"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_v_YUe-w3lEOTojhsbVpQIw"
      id="Narr_LwuASMorbkWPiqn2u-gFlw">P1Y4M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_630OtuWbpUSzHA1Y1ghY4g">&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;16. Segment Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"/&gt;We have two reportable segments: (a) our mechanical segment, which includes HVAC, plumbing, piping, and controls, as well as off-site construction, monitoring and fire protection; and (b) our electrical segment, which includes installation and servicing of electrical systems. We consider these two lines of business to be separate segments because they require different skill sets, and the business models for providing services have some differences, as a mechanical system requires ongoing maintenance and monitoring and an electrical system generally does not. However, the business model for installation of new systems or retrofitting existing systems is very similar between the two segments. Segment information is prepared on the same basis that our management reviews financial information for operational decision-making purposes.&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:36pt;"/&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. On January 1, 2021, we completed a change in the structure of our internal organization that resulted in a portion of our electrical segment&#x2019;s business being moved to the mechanical segment. We reallocated goodwill between our reorganized reporting units and have recast comparative prior period information for the reorganized reportable segments in accordance with the guidance on segment reporting. Accordingly, we have recast comparative prior period information for the reorganized reportable segments in the tables below. Substantially all of our revenue is generated, and all of our assets are located, in the United States, our country of domicile. The following table presents information about our reportable segments (in thousands):&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;table-layout:auto;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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:normal;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.89%;margin:0pt;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:normal;width:10.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;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:normal;width:9.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;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:normal;width:1.91%;margin:0pt;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:normal;width:12.11%;margin:0pt;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:normal;width:4.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;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:normal;width:11.36%;margin:0pt;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:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total Assets at December 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 1,452,527&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 690,364&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 66,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,209,114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total Assets at December 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 1,246,098&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 419,475&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 91,782&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding: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,757,355&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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;table-layout:auto;width:100%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,542,623&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 531,013&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,073,636&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 486,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 563,207&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 19,408&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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,413&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 509&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,330&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,430,632&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 426,027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,856,659&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 513,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 546,983&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 22,561&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 944&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 626&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,131&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,272,031&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 343,246&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,615,277&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 469,347&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding: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,596&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 501,943&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 28,070&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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,313&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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; 31,750&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 3pt 0pt 0pt;"&gt;&lt;span style="display:inline-block;text-indent:0pt;width:127.5pt;"/&gt;&lt;span style="display:inline-block;width:8pt;"/&gt;&lt;span style="display:inline-block;width:6.95pt;"/&gt;&lt;span style="display:inline-block;width:45.5pt;"/&gt;&lt;span style="display:inline-block;width:18.05pt;"/&gt;&lt;span style="display:inline-block;width:6.95pt;"/&gt;&lt;span style="display:inline-block;width:38pt;"/&gt;&lt;span style="display:inline-block;width:21pt;"/&gt;&lt;span style="display:inline-block;width:6.95pt;"/&gt;&lt;span style="display:inline-block;width:47.4pt;"/&gt;&lt;span style="display:inline-block;width:17.5pt;"/&gt;&lt;span style="display:inline-block;width:7pt;"/&gt;&lt;span style="margin-right:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_pCTy9XUFbkSbhdTG0Qalfg"
      unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_Z4s6Pi4ruEq0rfm9v3WNfQ"
      unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_9FXWQzsglkyXGoEnPHzgvg"
      unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_sQLnpgusQUOtUsUdMQxtWg"
      unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="INF"
      id="Narr_3dHSBJJLJE2ODlX9s_-uZA"
      unitRef="Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      id="Tb_g6pnGAgFMk6kYZvXAnREzg">&lt;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%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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:normal;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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.89%;margin:0pt;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:normal;width:10.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;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:normal;width:9.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;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:normal;width:1.91%;margin:0pt;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:normal;width:12.11%;margin:0pt;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:normal;width:4.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:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;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:normal;width:11.36%;margin:0pt;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:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total Assets at December 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 1,452,527&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 690,364&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 66,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,209,114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Total Assets at December 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 1,246,098&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 419,475&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 91,782&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding: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,757,355&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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;table-layout:auto;width:100%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,542,623&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 531,013&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,073,636&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 486,346&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding: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,861&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 563,207&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 19,408&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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,413&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 509&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,330&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,430,632&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 426,027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,856,659&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 513,760&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,223&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 546,983&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 22,561&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 944&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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; 626&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,131&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:10.64%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:9.45%;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:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:12.11%;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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:11.36%;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:32.36%;margin:0pt;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:normal;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:normal;width:65.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;Year Ended December 31, 2019&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;margin:0pt;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: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;width:12.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 Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:4.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;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;width:11.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;Electrical Services&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:5.46%;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.03%;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:4.58%;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.28%;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:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 2,272,031&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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; 343,246&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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,615,277&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;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:normal;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:normal;width:1.89%;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:normal;width:10.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; 469,347&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:9.45%;margin:0pt;padding: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,596&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;margin:0pt;padding: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:normal;width:4.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="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 501,943&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:32.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;Capital Expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;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:normal;width:1.89%;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:normal;width:10.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; 28,070&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:normal;width:1.91%;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:normal;width:9.45%;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,367&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:5.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:1.91%;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:normal;width:12.11%;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,313&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:normal;width:4.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:bottom;white-space:normal;width:1.91%;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:normal;width:11.36%;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; 31,750&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_Pl5JNyTdwEuExkUGgvxiWA"
      decimals="-3"
      id="Tc_LWZMVjxF6UWuoWEvh8lU4Q_2_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1452527000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_QK87lvCEFEeaZnIWHdi9PQ"
      decimals="-3"
      id="Tc_52W4Rk9JbEG7c9h128YzuA_2_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">690364000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_tLE31vHPOU6043kMT4WWkQ"
      decimals="-3"
      id="Tc_ADwd0jV-F0ig-NDv3hZJNA_2_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">66223000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ"
      decimals="-3"
      id="Tc_GopheIaCS0WDMerklC42OQ_2_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2209114000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_m8LIORfOs0Wtc0Mh1nc46w"
      decimals="-3"
      id="Tc_PpMN_EU6QkWdm9lpVcMXqg_3_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1246098000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_GUSkRB9uL0qVcKDRmgb3aQ"
      decimals="-3"
      id="Tc_0LAHGL2JLEiJiid82lJYjQ_3_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">419475000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_j-W2z0OaUUyD3hgq7N05mQ"
      decimals="-3"
      id="Tc_NcaERiRu0Ea2e4jctdNhWA_3_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">91782000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g"
      decimals="-3"
      id="Tc_EdGWhwvrhEeIf0dBl8vYyQ_3_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1757355000</us-gaap:Assets>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g"
      decimals="-3"
      id="Tc_mZxNLO0J8kS8aN_l2WfH-A_7_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2542623000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg"
      decimals="-3"
      id="Tc_WJQBc2gF506cYH4F7QyzEA_7_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">531013000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_5tv4ZpP2uEmQIukCCXAnyw_7_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">3073636000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g"
      decimals="-3"
      id="Tc_jflD0UrhUUWmkffY-01jpA_8_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">486346000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg"
      decimals="-3"
      id="Tc_ZOuCD6pziEWx5lryFzJmTQ_8_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">76861000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_tsqhkiAlREG5z0df-So83w_8_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">563207000</us-gaap:GrossProfit>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_-yAoRwJLR0i1Eyn2vY4U_g"
      decimals="-3"
      id="Tc_Gh0uRwfqQEC3dEz-xqT8ag_9_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">19408000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_sh1sNy4snUalwjvSMUk3Xg"
      decimals="-3"
      id="Tc_z-Jeee4rrUyl6nxkrINDyw_9_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2413000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_P-U_axaeAUSCpyPBJfFlTw"
      decimals="-3"
      id="Tc_Ap3NH-5nskKHr_is5tr1kQ_9_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">509000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ"
      decimals="-3"
      id="Tc_N9q9nMj33ECNNZNByUnm3w_9_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22330000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw"
      decimals="-3"
      id="Tc_plEYSA0FdUS2b3JV7jhLHA_13_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2430632000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw"
      decimals="-3"
      id="Tc_jVhiftfAVU-1fEB-kYqXCw_13_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">426027000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_ps-wpc77s0qcw0XyKsn7fg_13_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2856659000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw"
      decimals="-3"
      id="Tc_TNwUVQZr20ieKcLM7spMOA_14_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">513760000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw"
      decimals="-3"
      id="Tc_uWRH2b0dpk2qSAbyCF8Bmw_14_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">33223000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_8fYxRl1DY06SEhTLzcAfew_14_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">546983000</us-gaap:GrossProfit>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_hQwS5F1lG02ZvylCsOX2Pw"
      decimals="-3"
      id="Tc_QHCeJVXiDE67BKsM3vD6Xg_15_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">22561000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_1aVVIcGQyUyRc_mukNsWPw"
      decimals="-3"
      id="Tc_55mKQhBKDES-HnTzIxCq0A_15_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">944000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_e4IazHmIVEClFC554FxRrA"
      decimals="-3"
      id="Tc_UIsly92JckqYxEzK1c3XXA_15_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">626000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ"
      decimals="-3"
      id="Tc_fqkq17gIfUifbnTzSlPOzA_15_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">24131000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ"
      decimals="-3"
      id="Tc_9QjjuMvg7kGdV_fqZtYZgA_19_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2272031000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg"
      decimals="-3"
      id="Tc_8xGosqywGEq4AFtKyD29Qg_19_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">343246000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_VJyY51D9nU6qgL0aLdUsbA_19_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2615277000</us-gaap:Revenues>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ"
      decimals="-3"
      id="Tc_cN2GnkmcRUWROtn1dljBHQ_20_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">469347000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg"
      decimals="-3"
      id="Tc_6dRgQF3nu0G90S1Zgz3G-g_20_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">32596000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_HcXNjfUmJ0mLdsppUFE2FQ_20_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">501943000</us-gaap:GrossProfit>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_MechanicalServicesMember_YYVGYZAQSkqQOSiY9dYwbQ"
      decimals="-3"
      id="Tc_PXOurJRVxEm7APv_wAgE9g_21_3"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">28070000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_fix_ElectricalServicesMember_Yd5QiFcSTEKy2qYW6qpVrg"
      decimals="-3"
      id="Tc_aARE9q9FVEGfn6PhlWJ4Ug_21_6"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">1367000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_srt_ConsolidationItemsAxis_us-gaap_IntersegmentEliminationMember_mQ7eJpZb-kq3uBkiPbm_CA"
      decimals="-3"
      id="Tc_F7vnIQGbOkOFWVb2sPGmug_21_9"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">2313000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_1_1_2019_To_12_31_2019_8MDHvKgdmEy3dA5aGzB3WA"
      decimals="-3"
      id="Tc_pHc9sjxCe0-CIFUzB44oyA_21_12"
      unitRef="Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ">31750000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>93
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M?!^2!F.,6_0T7X\48JVFL:W&VC$,>8!8\PRA9CC?AT6:&C/5BZPYC0IO0=5
MY3_;U UH]@TT')$%7C&9MC:CY$X*/-S^[PVPPL2.X>V+OP%02P,$%     @
MF(175 40)3MF!@  UQL  !@   !X;"]W;W)K<VAE971S+W-H965T,2YX;6RE
M6=MRVS80?4Z_ J-F,LF,99&@;DYLS\BZ-&H<1V,Y2=U.'R 2DC@F 14$+?OO
MNR I47&A):=YD7C;@X/%XNP".-]*]9"L.=?D*8Y$<M%8:[UYWVHE_IK'+#F5
M&R[@S5*JF&FX5:M6LE&<!9E1'+6HXW1;,0M%X_(\>S93E^<RU5$H^$R1)(UC
MIIZO>"2W%PVWL7MP&Z[6VCQH79YOV(K/N?ZZF2FX:^U1@C#F(@FE((HO+QH#
M]_VX[1B#[(MO(=\F!]?$=&4AY8.YF087#<<PXA'WM8%@\/?(ASR*#!+P^*<
M;>S;-(:'USOT2=9YZ,R")7PHH^]AH-<7C7Z#!'S)TDC?RNU'7G2H8_!\&279
M+]GFWW:Z#>*GB99Q80P,XE#D_^RI<,2! 3T[8D + _K"P.T?,? * ^^E0?N(
M0;LP:-<UZ!0&6==;>=\SQXV89I?G2FZ),E\#FKG(O)]9@[]"80)EKA6\#<%.
M7XZDG\*X:\)$0,9"A_J93$4>@&8@F^3K?$3>OGY'7I-0D,]A%,'CY+REH7$#
MT?*+AJ[RANB1AEQ*/DNAUPFT$O#@1X 6L-Y3ISOJ5Q1%'''_E'CN":$.=2V$
MAO7-'8OY"#>?\,4I<?N9.;68CW'SWU,!K3LV\C\XP]N/HY?A>4?PAO*1*_+7
M8)%H!9/O;P2RO8=L9Y#MJM"X>]YPVX#CYJ[3_(2PZ.Q9=.JQ& B1LHC<\HU4
MVD8'Q]$JY0B=[IY.MQZ=&5>A-%,F(##QK/ZI0"KB[Y=7KRIBH+?GUJLY8(J!
MDF?S][B[<*PEBQ+,7_T]ISZ*4TC*)(PXN4GC!5<V+CB&VW0]Q\4\=+9G<U:'
MS2U?A6:>@*MN6&P=.QQG*&.02$WFSXGF<0(:.3AY\ZO;=3Y,A7^*$'6=4I>=
M.E0!3RH8PDR-3\A<0ZP1J<A0ID*K9_@/K/PKT$=CC.1!\G#KD+QC3V0:0.2%
MR]#/\\;QL:Z ['6;3H=VV_T>QI"6#&D=AH,@4#Q)3G87Y!J^(U^$W7<X9+?7
M(5<P^\6*C!14.1C/4KY=[__SO-M**T\<<IZ&FN=1V78<C&69$5Q<TU^R')H[
MB,8[N156ACC<1VD*'(%1*].$B^O[2VK[F3)3\C$4OGVD<<R[/S!J9<IP<:5_
M26TF$PV9[,]P<WSZXHB]GM-!YT>9,EQ<Y[,1', 2XS@5'*#G>AB1,D^XN,A?
M2Q]\,EM+@26*"I"^YS3/NGBPE[G"Q47^+M20M.22N/3MXAV9<S]5X"TKK<IT
M$8,FSK7T'T[(ZU/')1NFR".+T)J$ELF"XG(."3\P>C1_CA<RLC&L )A,L5"G
M94*@N'KOG$3&3_Z:B14_FF K@&[NYUB*HF4"H+42P'=8BC8?!.@4#"1+(,H"
M,DV2U!YF%9CW/,&XE:)/:XG^-QE!,H=E>E8F*>OBJ@+I1F*$2GVGM?1]F"IE
MZLB\>,P""]0TM1/#$2M<5<H[K27O4Z&YRC<73-G-=E2MS'#$"F:ENM-:ZIX-
M'1E"TEE)916)"IQKIF"Z#'R? Q# !#DDQK%4>8J+=,%Q'K,H(E=I J\3^VC^
MW*J EG)/:ZT+QC%7*Q-@OP&"7D,2BC=,V-V' U92*W6?UEHDS-<@&2@A'*:*
MD%>JNU=K*3!+%U'HDTDDF2W>QP5*)T,Q&X2/E[1W!KGPT=9Z*>E>K1K_QQPV
M7S.H9<B75$,I(TSNL>V@%,C= T9>YZS3[7MG1UB5LN[5DO4AS'T%=<-4!/R)
M?.+6@:J <AS'=8!7'RMDO(.-&%R*]ZOP29B8DN:>0ZJ?P$/KA*L J]H=*I7=
MJ[F94[ JMB^.\\+A)O<8JU+5/5R#=XGFT%78CDH%7+/ITJ:'.JR4=0^7XP%X
M*\@]%C%;=%]5 %3._U*]/5QUI\/)+1FD0:AA.3/0FL.<RQ;91YGA>!5;85XI
MXAZNN3M.QVJ\"O,1CV0(W2%O6+SY (O(U%]S<GT]LVWF5F"-E4AT 70O4\@H
M_\'YL9-E.O!P'=]U<A*JF$Q'UG[B"%[;VB'<J$T1]NTR=[3QW+%C;Y97)F:L
M^[@X1+%*/R%W_(G9Q&+X$P!YMUH'!QBF(LA.CA+BFTVN_$!@_W1_.C7(SF1>
M/+]RWP_S,Z82)C_R^LQ,H9&0B"\!TCGM@92H_!0IO]%RDQV3+*36,LXNUYP%
M7)D/X/U22KV[,0WLS_(N_P502P,$%     @ F(175!4A DZ2!P  %AX  !@
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
M0&0#H\> U@;TJP9&;5!MM7:B4NV#%_)P-,RS=Y27:.&MO*@VL[(6]*.TS'O
M<_%K).SX:#*?!?/'J3=>^1X*5N+KR9^M C2_1_.%OQROI@* KM!SX*'OWRY0
ML0]S5J H1:M]=BS"=%-<HF^?[H<:%X&5[K5U'<3=*0C2$P0FZ"E+^;Y ?KIA
MF\\.-,&HH44^:-T1I4>/K:\1Q9>(Z 0# 4V^;JX#YMZ7S;&K8$.;)-'*'_T_
M25*L8S3K&-4Z1L\Z2__%GSW[4 )/AF9E6/:2MQ'5;6I1:ZB]G>]K%T<<T[),
M]S/. W 6-HEM-[A/#,R&@:ED,)D'JW); G_Y,IWX 43EY,$Z7]K$ND&D$"<
MCNJN94N4/0"',:74@*E8#15+2>4ASXH"'?)L&W&(AM59UK0HT6V)!0 S+->A
M$@D )FK7H# 'N^%@*SD$_N/C=/9PB1[\F:C31S2>>6CL/4UGTV!5UNV+C_R?
M"W\6P*FR.U%1VQ))D#@",-.V;6DK/ !FZ+INPAR=AJ.CSM-X.D/S&0K&CWY9
M>N,@\%<@&Z>S_A4V#5TB Z$,PY2X0"A;QS 5MZ'B*JG,#RP/>93N1#]?9PF#
M2+B=A;'C&-216  P5[=,+-$ 8**G4!?F@?56U71EQYRO?OA+-)U-YD\^^EZ7
MV,6-HD?B,\7$REV:IIP)#>2*3:H]?.H)AK1#  ;K\FL).2(]C063E@'Y&@/V
M6\R/!4R!="O,PJ[<[R&80QVY7"&82W%/M\>M,&*J[O?[,-V=YA&^9V@;1CEZ
M"^,C0]D6K<5,(8J9I8)HF*=78NQ%V6L<[<)RY(3G%-J)TW:(_(H"*!=C6>(
MU!5QW9YW%+<BC=4J/1=,<S!X WHWY=B[()/(D4..^G+52C-6:W,5=_W2H.]U
MZ5V 1+J2BIW.J &@'*>3A"[H"F/'[6/3JC-6RW/=6^[\^_G2_^@TJ_%/6,AP
M5U]%/R1VIRE N*Y(>!#.Q+9!>FBU@HW5BKU8SE^F@9@GD>#U[[2ZDBJ&"]+)
M% ##ABZ+ 0"CMH&='DZM0&.U0L_\5<T$Y.!T1E%LB.FM\^( .#$CT4[% 3CA
ML+=KM^*,7:6FU<D0 S\*?HR7ODK-2*N41%=NSEU81&MH7VH[^SP;UZ[4V"<
MRKC&<F9!7SV-D+1"3-1"[$7QD<M_%^O@,10\E8/OHHQK>;KT0%]Z3U625H0)
M4::SRF$@_EB+_W1B@A2Y73ROQ+",_E.>6Z4D:J7LSW-7IJA%9 6?@##3D*4#
MA#EF3_&35O2(6O14N>ZJ%;4,4Q9M$&;+@ZL'P6Q,Y6+5SHY<$I;OJJ.K0HP<
MQY2?CBF:I\WQV+@Z%)*>W^$;[W3(U;HYG;D]A?DN2@L4LZUPJ5_;HJ7DIV.L
MTPW/#M7!SFO&>994EWL6;EA> L3OVRSC'S?E LUAXN@?4$L#!!0    ( )B$
M5U1+8&UDU0<  .XI   8    >&PO=V]R:W-H965T<R]S:&5E=#4N>&ULO5IM
M;]NV&OTKA#'<M4!=BV]ZZ4T"I+$3!VN;W#J]PS#L@VK1L5;+\B0Y:?_]2%DU
M+;Y)V9Q^B27G/-0A'Y+G/+1.'O/B2[EDK )?L]6Z/!TLJVKS9C0JYTN6Q>7K
M?,/6_#^+O,CBBM\6]Z-R4[ XJ8.RU0AYGC_*XG0].#NIO[LMSD[R;;5*U^RV
M .4VR^+BVUNVRA]/!W#P_8N/Z?VR$E^,SDXV\3V;L>K3YK;@=Z-]*TF:L769
MYFM0L,7IX!R^F5(D FK$_U/V6!Y< ]&5SWG^1=Q<)Z<#3S!B*S:O1!,Q_WA@
M%VRU$BUQ'G\UC0[VSQ2!A]??6[^L.\\[\SDNV46^^C5-JN7I(!R A"WB[:KZ
MF#].6=,A*MJ;YZNR_@L>&ZPW /-M6>59$\P99.EZ]QE_;0:B3P!J I 20"-+
M &X"L!( L26 - %$#:"6 -H$4"4 !98 OPGPU8#0$A T 4'?/H1-0%AG=Y>.
M.I?CN(K/3HK\$10"S5L3%_6$J*-Y"M.UF+NSJN#_37E<=79Q\V%V\^YZ?'XW
M&8/9'?]X/_EP-P,WE_SNYN*7Z<V[\>3C[&<P^=^GZ[O?P!!\FHW!BY]>@I]
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
M?(-6SXGARWDE[1=M7&R_[Z%\)16O6["NH*;,K>2Y[<,.(#@]  A;0/@6$!\
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
M\DYIN5MIQWICJN!J45:P%\&N=:8S'1WY:D^K(/J7RBSLMO;FB&B"*865,&!
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
M0SL[[:S.07?415II)#DB%HN88G0?A!"$(=J6#@D;=GKSR!\ GWB>S*>[MX@
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
MH%[(#DL?:UA$ )464>X2'92#D,EE&5\J.89JLJY"775GTH9T(OE,G33'5"R
M0U5%"*.P2/KY?(,)PEDINGAI8T3%$W\[C&:;A9Z$3+06VT^F9L.M555-UF!8
M<8<4^QIZ&!5Z.Y=\EA\HQ*\;UZ(LW$#7(X>,2'&PD$XQ*9W3DW>:#?<)?GO
M4FT=4"HC7&C;?B$4*7>MQNY"HT'-]JNV#CK%^*)&&/S0]AJ=W_"WO:?5=YQ[
MD_H%5W5(]_3<"L;33W-RRE$33_+#,XJNN?E$$ZH)<$G:.#1:)0N'%=&[;6,/
MD7_$=S['YPC87Z7WC6[K!5?GJL4Q6),XJMX0:F-.6)1J*F/ F%R6 J:?SMM"
M5$"%_K""6? 3MS)8QF=@/U-SKTQMZ4M$6_9,FCD+JXQ0(6+R=05Y(@L#J;JO
M.F;/!T#%O7F?G=UCT56;8#"1SWXH^6S<-,F9'G9.?;O#%&,0-O2HY](+T_I!
M0C<8\AJZJ3'^D!O^2&]>O_WTXTT\P6<;XI30,*#]$\%3#"5V(AM9.==9[]RK
M2^B:@=,_RF[CR Z"KLXNV.U^P>$$HRMT5;#'EHSD%+_V?ARPJZ-/M0T.R4\I
MBKK>#\([,-P[!S]=/5V^4_*=I"4!Q&U<RVUU/ G+_0/@GR>QD1^,)R2 XX+\
M<3T_YJZHV/B]9Y;3VVA7%]K0JW8Q6BTU4JRN!E9JX.JJ;:JPC!]F&,90$6F^
M<N!;>V)K5^/#B=(R9'TZ)<N#HZ)L2%_LT1/>44#PT6I.*-1O.';T&850 8>1
M%2NN1<>M:"8%%+T^R73KH./;8]F''ULCP5(Q$Z]P7Y/]H!;_NP/&>53@>[6I
M"9D#SN?YL$@ 'W&/F*Y_JQ4_D=/DAV3<(9UR@+_62CM'9>'S(F/CYN(Q(YC/
M0P&<U4X<Q(WSTX+2<$C^>L'40IO0?@_DW_M2<!RUF<.GP!8Z2?SXM?@>97<8
M;'X;.BC2PV@;&WJ .L/U?F+_. BMP13:MFS:F+I"ZD)C%DO^4/V8-%N&#HT<
MXP9U>JT-0O&6"*^L8&&:^G6VE!+QK#1NQ4R1L8,<S'C)[@>:C$C&(;C'T!N%
MS"KY#A-VELVTK9NI6M9A+PHY%5"1,;;30IYK[UEY<:$,J(DI(-;IVH\BS,<3
M6=R*R=)$P$K_B-AZZ9%(6JD>??Z-=GCSNWTSN]TRK&R@)4R)[]P\2L")V>K<
M]Q[#Q(6BJTZP[^^L25KUV& .T0.GRR%6X]Z:5*S:6E-$P4$K$14VPG[<SG!<
M(/2IU[P-$!K[DY[DI"&WI!-N YZ29BAB":G4&@2@37&,S"L^L=#Q6*8&F^6C
M--IMS_:GU,>"AWM,QZ')]+9>K9R:1C\#%<0W-)=^YK6[1^W_)@&+@R(;^4TZ
MP#W7:2#%U3H),0A.\EA*]<4JKJ+]_.9#;*/6A/*T=V6A#,9OJ XB:\8U 9WO
MVYX H*"W![N2>$=**&A.:B))8F\PLK#O  YH+\QCJ]!+>Q_G&WWB,0&>#$BH
MEK-J\>C2?O]V2^"" Y)('$Z3"!H'VI":N!:K#DW ^@@_Z*?8VQELJ;;,#^;9
MY;,)D,%HKA2EZ/'9[3UA1=5HDZF,^,X)&$Z6:[]GG!N#^R$M4>JJ)><+&0KW
MX*=W O<CE6EF]Q+PU?-<7#S>GP7RP4BPY-?77H2^M!+V>].4,ZLWY/935 FF
M\A*J(]X>KCS,P*@))AO&O6X],Q"''E5HD]E[1-^-*?O,>'"AK8-#WNG<=X=(
M-XPW)0F2-#4Q&+#=]@B30?6MP#J:_N.083[@5F"L6;X? *!\ EMGR+9FVU5U
M;RM%MC<:-',M/DD6QU)2\G$ ^>:0MME+H=;'@E$=2KW$VX+.W%O-EBE0Z;<
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
MFV95#P2B=J%[O>*\$K9*V*C#M<"C"T00=SQ6QG?Q<CR*7PUW&=#IB<J/$ZF
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
M;C).5\*DP&U]^K^\FX']$PHQIM$$ N0LS:"56:[2VU58VUVO4YC.@9?C<->
ME8%]GTY7XJX[0<I;"+)-FKR334U@<]Z%5Z@.>HSQ';!"J-6LEV.SY1A,=>18
M>CW&ZBY="G=N0>'_O.;[=Q^_YH9,Y,Z/-CN@!1CV]]G&39>F\.]>\<TS/CW%
M^5E?BN!N=#Z:B/U 2:<?R)?'.YV<[B!NW[$B;:BU/>W+#W!6S\B>L7!B/VZ@
MQM2(ZZ]V;<O4+57*\XZB9\KES.@0BB^_A2Z/+#GNLY#[\F^HZG(Q?@?@IH#+
M7+#$3A%.M8PNMZ 0^R-> YGE]R3@=@7&O@>U[ST+E^P:N>1&3!^,(&?C?!?F
M!MS9'TS.<$&%LP>BWB_ZQNU+L>RY4E7FODV?1PLE<6ZI8$:<?]^2(B;RZ4$Z
MM].6],8$2H/PJ2,NV?-<>9B,LA@9RRG,L*,6C3J<8,%LUDM<D3MW77TA"\4;
M&P2%6]^7>)V47CIL<;@J?>D@M,WV#.>.MT6O?R4,%%KU)-6?31.*5SS^;P,#
M7WK?<+[":Y[_Y?/?6'OJ/O;9U"NW.-YFF/K:Z;*TQ5U;)[AXEPN8>GX%2F3\
ME\*!P".+17H'L1Q7P^A\+?4;_-9J8\^5O\ ,'Z@SYK:#Q\" ]M*C+=+;Z>SB
M,@0&PFGZF\&7KF[=S/*UQT-OD;GI>2</_IQ,+P7@9GDW?#,C>]'8(<HMGFB1
MKO'^'\*$GI35(IWW, /#U]E<[IJU<7Z_+E[&8U]B(_>'M_1R*Q^50.><^2DR
MA+[W>YL\G8Z7$'3$;QE98%3O+LF7,DI[%AFQ)OF/K&RQ+"_GCJ^-NZ_Y<.NA
M1'(N#^]<O(M0Q:^ =UGI\'JWZM+2PMY&7 @3OO>]33^+6L%/HE9P>6?4E3E4
M8@AMO5PL=@]?GE;$Q@R-?H2;@D.[+]7%]K8805V^X@7%U,[E@)9ZP#?/&OG&
MA>H8VK1@A@N)L,TB/F4?O_OBDLKH4'E8SM#RL>+Q=#J:3=@GN_--KF;'!_M,
M;W<_804\W/= =21PAJOQ\]7M'\+K7SXWN7_#)C"F2293^RJA) V]I6$0(4SD
MKZG\R9CG,P<?8HCF:X;@8]6)NXC]O:+]+X>=X;F L\ABS# C/W*MW-_#R/B]
M= Q!;!F7WZC<0U&GMI*YXPP6FS@8@'J!!<8(EIS\RT89;8$LV5,_G99ER=[/
MGPD9)7U_(>6%^&LT *YW]#=WJ!>@;/@/T_BKB?NS/J_YK]F$V_EO KVC,Z#X
M]I<M/#H>+6^?,$YW'YKJ2'_;9ETU@.3I5VQM4C7> -]OJZIQ'W "_\>.7OTW
M4$L#!!0    ( )B$5U1QUS4+7 H  -<=   9    >&PO=V]R:W-H965T<R]S
M:&5E=#$Q+GAM;,U9:7/;.!+]*RAM9BNIDF5)E@_%1Y7CS.&J))NRY_@,D9"(
M#4DP &A9^^OW=0,\9%MV9B>[M5]L"@0:?;_NYMG:V"\N4\J+^R(OW?D@\[YZ
MN[_ODDP5THU,I4J\61I;2(^?=K7O*JMDRH>*?'\Z'A_M%U*7@XLS7OML+\Y,
M[7-=JL]6N+HHI-V\4[E9GP\F@V;A1J\R3PO[%V>57*E;Y7^K/EO\VF^II+I0
MI=.F%%8MSP>7D[?O9K2?-_RNU=KUG@5)LC#F"_VX3L\'8V)(Y2KQ1$'BWYVZ
M4GE.A,#&UTAST%Y)!_O/#?6?6';(LI!.79G\#YWZ['QP,A"I6LHZ]S=F_8N*
M\AP2O<3DCO^*==@[G0U$4CMOBG@8'!2Z#/_E?=1#[\#)>,>!:3PP9;[#1<SE
M>^GEQ9DU:V%I-ZC1 XO*I\&<+LDHM][BK<8Y?_&3U%;\+O-:B8]*NMHJ:-R[
MLWT/XK1E/XF$W@5"TQV$)E/QT90^<^+',E7I-H%]<-6R-FU8>S=]EN)[E8S$
MP60HIN/IY!EZ!ZVH!TSOX*^(ND5YUE*>,>797U?BLX0H M^Z2B;J?( 0<\K>
MJ<'%;"1V7""N2Z^PSXL;Z96XT>Z+^"A+!!.]%K),Q7ME]9TDS\=FYVT=#O[]
M;R?3\<$IUL1E975..AX/Q5H)Q213H4MOZ$^@;XF^6\M*R)55\79LP,XZ4<+4
M5JC[RA!GM'PGK9:+7&T3< )A2%NQ5HC<R))9M.K.Y'>Z7(D$Y+072YGH7/O-
M2/R:*5$:"E^9"UF8&E(EYHX97&R$SZ"C)YAT8BV=>'4R'HT1,WG.X8_;EU!'
MHHJ%LJU?#9D%$&*F="DY5Z1$23MQJRH?]X]Y_W34JNX/)6K<GG8*UCT%0PD%
M6V)++\A[7Y!H+0PUQ/8DKU.2>UL">CL2OY5.>9]#T""W$S7BRK+^GI)8X@:K
M$F-3-AZ+=&5*9W)-TJ3BG<QE"5O=<JZ7I&8XU1T[%?:36-/QZ3]PSHH;J E2
MP8*.UR>GPMCM+5>UM>1D'V!HLI96;M3L_1E@X%BQN7&NL_M_Q/=UF9@";'O\
M8K?NF&W=_\=[@)13+0-(V$QHHZ1U<&FB_<CT,3ZV5T,0$$.K4O^+M"]*J(OD
M(/]Y-1X==BZ%\U@X:!:&..<JQ3B3;^A7SA+ \#ND'Y$7)4&3^4:DAKQ=9!+.
M),M-S[?@4!E,1LJ224+^ +J 9'+K3*4KU;C'Y>V5.)D<=F[Z=.KH>W&22^?T
M<L/RI-HE$!;7P' ^&K$SL4BDM9K4\M!_3*E(0:3UI<F!]>38/D.RP!FO5@;'
MW%O<.S\ZGI^*#PHZ$A-B8S(]_5H;$@B9*,$=N@'K&"^.)=4I^-8))8(G63M]
M0'L::9L%Y5'.1H'<'J$X^5I5@PHHUV5O3UQNU0W/M&9A+%L2.2>&,'Q3GC(+
MV[<>Q%N=AO\LP2YT_11]R+C.=))! HIR8J,T?>+(&]IY-R2-HE Q'"9?:VU)
MK\B<I R_(=]*Z6)3"4W2K"G3H<*J*(^YD$%[]F 60@$&[W;!7*T=7<B&.1%$
M#M4^BP'9,W6FE94VR3:=" ]V%'V$(A6&1*?28?38)QTKGDHI5T@*0$0%L0QC
M(1'OR-Y,A:)6O&9.3>VPXMZ\;?W[?_U_%U+#FQYSWQR*P= X;N-*XE?CX>Y7
MTF4L:$(/Y /0\Q:*OQ*')\/CXZ/>0G3#9U?BH0]ZR=A56\*'N(WO<IR9**T$
MRSY'[&AX-#OXAAW([1YVI1R$Y%SNH5$09I'K%2.O^Y,B',R&D\EL]\+_L?G'
MW]/\L^')_$^;/QSZ/N8_',YZ$NW>\7W-/ST<SH_GCQ>N']>M3:[9/$MP-OW6
MU[O-DD .I&Y",TJSP'6DK@S=(9X"C!0 RQ9)E@!N=A#)9;/RO'^-/G7O2TGY
MG,I*[>N@'TK*  N]TE02HRNM;<B?C+V$MD7HPI!I4;U%!&@/) :,!9CN87Q5
M67,/9JE$[R7RM.:B%7NQY#)C_1Y7[O'66)_W#E!ZWU7G(8D'W*TK4S8H^!!<
M'V%U@$(6VFF469*:A])8(%7 G@#14'C*34$30H%^8/#*%!6J*;;F\2DT@S<>
MEF- ;#N13.6QI] VW:NDA1V6T%F9:.AMRP9ZJPPBE0(WTW^B68]%6:H6*%,!
MPUQPTX8=K'37@R:5?E6-6$C@*-Y**EJ;YH3NVS#RAR9HE\ED@/306R6)K;F<
MBM9H?8P53$H/7+7$ PVX!QEQ0;:AJH'0UQFH@<1C4] 5.[NV/F]<DSSI4=M\
M$.B[&N8DS7%1S#5POI6:1(6>(.$BE%I NOKD4*BBRLU&J1@:$B^+!=KJE!A2
MG4BOCJ9=I1[D;NF%(@55M@\]B(,76;8ZK7&]?*?@;GE3(>VN>)H:^$$"7<3F
MZPE-NAXC\()4A4:4(L61C-LN_6)51NRM(24I>!,NZ8E1*<N#//#2V/Z)1-\F
MB)8Q[J>/1D<OM=.A)SH<S5[8..;;>RFH5R:2!4*/^<F4L3D2EV&?#HWD[L8V
MM%1!C.0%K GZE4C49M& PYK'>"HT0K'/8ATM44+#T*@Q4^)=NUT.T"8Z\NF7
MNP R9,QUP;-JA]CBZ0\7#FTUT+_C!2>(#$ID_ U5S^@?: H:<@-IQ:*_JN'@
MY&JN<=FJQEE)-NE&/*_5:#4:TN!1%W7!'!;RGI\KN>$]0^!,N2)46G9JAI]I
MD^(=7*VDJ<426LR3&@UQZ%\V[5@#.6$HE$]&;Y@\<FS.K4FOC0EN;-5*6NZF
ME[6G@4IKE]!-&%P:R&L>&0Q[AHT(*1/HB),69YMOH\.+LO,,2<EAI5HL362E
M4:B-Q&W/VM!DN8J];+G9@MQ6*OA73N,O5^<\U9!]?P$&4,U N@.2FS4>*C3)
M\&C8K2UF8A"_X.@476U_M=VY*ZB$_ W@3A('NX4DUQ,!Z2-B#03IPXW=FI70
M3MQ/F#%"Q.X8N/74#:E4/]*:B'Q)UP"-<D5;E]848C(>C7\0>V)R-#K\(6@D
M-+H+^N8@>K%$O)8$4V',U\PK.H$B]KVD4)X.T/3OI0!_':/WS7^]0=U2],.7
MG)JYYVB2)?A?**B0C$52TZ2LJY_Q<#*<S8_%=2QBNL)\,A_.9UW)/3D:'D\.
MVY^W/+/<GC$W_U\?#.?SV9O'ZY,Q]6S=BTNNI=HY:L\\[9'C(1ZZ$Z_GH##O
M?O>D5!314;YG^L8'G41O/!8#1R3*>JG+%K&VPHB'%J4I'\PMGD"Y_FAQB\0Z
M4YS1-TU-&]$0&EC@ @+$/?A=B1J\0+B&SD*CGM2(ZA&P4JR,21GZJ0QG $7I
M1X%"#LDLQ/U!M1Q\[>@UK6V8V+TP-8V]:QB\3.8,MZE.N7IM90LY+[#0N]%P
M"'3Z" .M5L8=*6JG;F_1[7Q"3A1'S4#XYT8#Q-XU#PR7H<J\[C012HFA^*1\
M,R^FHGU96V:8TE'M'%>)3WT;VN]];"N47?$G14[FI0_?W=K5]JOE9?A8UVT/
MGSP_2KNB27FNEC@Z'AT?#H0-GQ'##V\J_G2W,-Z;@A\SA<; T@:\7QJ('W_0
M!>VWW(M_ U!+ P04    " "8A%=4,2A6BZ,-  !U*0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970Q,BYX;6S-6FUO&S<2_BN$SSTDP%K6JRVG20#'3:_!)4T0
M)\UG:D5);':7*KEK1_?K[YDAN4N]V+%[5]P!02QIR>%PYIEGAL-]?FOL5[=2
MJA;?RJ)R+XY6=;U^=GKJ\I4JI>N9M:KP9&%L*6M\M<M3M[9*SGE269P.^_VS
MTU+JZNCE<_[M@WWYW#1UH2OUP0K7E*6TFU>J,+<OC@9'\8>/>KFJZ8?3E\_7
M<JFN5?UY_<'BVVDK9:Y+53EM*F'5XL71Y>#9JS&-YP&_:77KDL^"=C(SYBM]
M>3-_<=0GA52A\IHD2/RY45>J*$@0U/@CR#QJEZ2)Z><H_6?>._8RDTY=F>*+
MGM>K%T?3(S%7"]D4]4=S^XL*^YF0O-P4CO\7MW[L8'0D\L;5I@R3H4&I*_]7
M?@MV2"9,^W=,&(8)0];;+\1:_B1K^?*Y-;?"TFA(HP^\59X-Y71%3KFN+9YJ
MS*M?7N9_--IILI![?EI#(OU^FH?9K_SLX1VS!T/QSE3URHG7U5S-MP6<0I56
MGV'4Y]7P7HD_J;PG1H-,#/O#P3WR1NW^1BQO].C];8D;M^+&+&[\)\UU[VP*
ML&=N+7/UX@@1Y)2]44<O)SV12A679:WRK^(74\QS(]Z^O4H?B[__;3KLCWX4
M[RMQV2R!#Q%LE8E;!8QCI%5S(8M"F(6H5TIHYQKZI9H+!*6K\4%72Z$PLMX(
M7=4*JM2.AN\O3;.4S%?T5&/0[<H4Q4:8VPHB73-S>JZEU<J))T BA]J-P@!2
M<]C_T0OD+X,?G_;B FMK;O0<DS@XK<YE(7+@R%*,0C=GBL8;@]8G.^E<N0S*
MYD7#VF.R7E;\>-;H8IY!ICI9R!D)\^&.1[K"=HO"_P "PR)6M8OR$)#2R8TI
M:A"0<!M7JQ+K2&P4/$%_X^(\?5W(BC9.9%>K2E:YRL!,M34+77M;E<HN595O
MF(S:#6LG5F#,/QIIR=RDF?BGJNHF_[KA>6NKP8D:EF-4./;<$BR+X>(:?L-T
M*&<K\;G2-01<UWBT99(H+Q.?%+1T3BD639*NI#4 (]A<7,*HT-F!M2)"9(>O
M+-%8WN'M39QW9<JUK#:0MC:V]KLRC4V]VIK/J26HO.Z)C^I&50T6K3%DUM1R
M5BA1F[CN+6Q^/!WU)B"[HHA^H]460)8H/=LLK"EW51=S6*37!L@GF@+US2TC
MBG.._E>P[.XTL9#:BAM90#%L#EC$5I7UP $L*[=0UH8H>H  CKLY]JL7FC<H
MX0Z$3Q>?!#T\T@5D0"D\;THU3_TI@>'2-%7-%E@:,[^%1<03&+E>F<9!A'OZ
MK-WO77^O[MK+_M0KZ59B+374JT5>&$=J'(M!_SP;32;B"Q!-O^1RK1%60LY_
M!_^05UL)Y]FX?R%^-8!FY!VXEDH'P)A@9%T[=M#/^OV^>.UJ0)_0L^<#X@*2
MKJ2M3A #T&U#RR4RAMD%9,2OT'5TGIV=C8&RW"PK^'L>C,C\]F=<<H>9:'1.
M'XA'H32K1>MGD\E8O(*G@LBFFH4O>>X5L2I7F$(Z1)'C438<3\5[X 8DU< ]
MV'90,(X99>/A4'RPJ,=L[5F#UEYO.6"43:=GXA\1+/'GR23KGY^)-^G^06&R
M6NK$%.WH\^P<5GV_9M3 XP7(1PE+!<Z)69PT+DQI9TRSBXMSY*FP0_AI:WM/
M!N-L/+UXRG:!0$=,H;Z!%YQW->4?WE +!O(YC^QD3++!!61<!?-@7&.]JR"C
M,-7R! 19(C7,ZF16-CWK=Y/,SIY2AR=S!H/)4]J.)02K;ZB G?(:FBT7'9Q^
M!A] S[=W:'0^G:0/'Z31.40.GQ[ ><IVR'0F)+] 0>O&YBL2BO22,\LR=ST,
M^)0"D%0+C:J32!_#,IJ/JAE9-*-\\#MXGJ1B$42J@)F8N6B1'+FA4*DR"X@I
M.+Y;'?<A2+K(8/=$IUX':20;*IT(9BRU 0J0TT$7ID1.GZE*+:A2 =LS?W&J
M\%[;W7B](IXS33$7E:DQ%0K--2J31E+:BVP13.346L)35-W8EEV03[M*:]GI
MV+'/?KH-F2Y-(3!U+;\!*/,&%1#LT>6Q-U6,BFC:_533[FC/H%P5HI8J6!D:
MVSF@5,@C<U.8Y08K$QAUY0D;EJ"A)>)2R#6J->"'DUQ(Q9V9]E;LD<+&(N&0
MH!C/=^@]D_E7+._)E,\ZF ;(L7YNI=<[^LN6-5IZ2#:!L2N-4I6SMR,2B6%@
M#2%5!<9>H"9P>_4'!KH6AG/MF,J\.0+@@NX-PPI.U>[KB<^!&!9G".NW"V2U
M2 V6MRIXB8= -U2.C:UZ'+Q(S',E*EFJL P50HE7Z.2)#55!4J'5XH2@?6+-
M1A;(!]X0T0;P6L&Q+.)SKY<)\WT-YFI4F.4!4VCG+9&U!8^',.T\"@S).&)7
M+1;>QC3C'OOU4,Z6+0)**LBIE$><Y9)R?4!,H *BHK4_"NB*N(<6K%K#W!T2
M^OY4)RU_-+GF;'.KZQ6A6P$@M:]Q.J!P>4X5OJ>C%F>M?\5;V+,0(ZRSQ@G+
M.]17])NM+33DPUOL0J"N >T3RWC'-NO@VFVL83,PBL[U6N[ -[&P]*!#84&;
MC)0W&/?Z/X@3,9BBEOZAE]19&P0/Y\PN+MIPZO3RM;/W/;,[)G3IV2HZ ]%B
MV-.B*4#6-^&0Q,?%78NCG,3?[>K\;M8*57"@C;:(?X(X+TCW1Y; C_W[6TN1
M[SBHV@>=#3_[7;_5"[4WO1OU,\'R-_;DJT!U[: ='FLK6GC+.ZA+]LC^*,<^
M,4/\2@P1'WT\P /QV7"T(R>IF<\@[BKR[<>4;[^KW\4=4E&/C$A)0R>#AQKZ
M.)::*2P.%?YF5NBEC*ER-W!]"EQI1"$S$I"ZX'-HFR1T >B:BDK%&RH$Q&1T
MPD=)U"Q6$VVV/-=BG6 L,9HZ ]M1V85!*SAEP^-^;]">7D%_QX-!;QQ_Z(DO
M:BO;<CI%%0"S[;/8=VRQE12H$<<G_<*(:UTV19KE]SB+4D.DK1*%)XHH?SZ_
MZCB&F2HA&I_YMC+=/NE,F70FO>$/<4UD\!D!]4:Q\Y)Z@HS>:B2I=<2,A]+>
M?E5TW+.>^_QA*- H$D@S<\BE9)58TNX<Q[.'6$_342SLG5DTL3][W_<U:',>
M)3 .%[J!@%(@W.NZ]MCJOJLX)Z:D?*1S4D!Q1Y[^F+C5-$S:@C_A>%G.,&!T
ML#/X[O4';O#1MJY,+T.]EO<\_C4?3@O>T-V]O2PV]Q))+K;X. -([(YH(#T]
M[!Q%8*3CR7EO%,,B8B40_UP<CP&AK@?44'LY(CVV)KRGC\][9^U V*OB[D,\
M@NZV'S(N(B,:N$[CDGVF?.=#XSB*\S62&Q]8JIP"LY9V&:L&Q).0"VK+'?8?
M52W<_#O<*OE^ RXUZZ/:<"&: %GGCQWQQ)*>,>,)\2&MNLOYG'6B>B CXQ^&
M5CCJ^?H\-0C'<A#K:WSJ\9K"B1E1">67M _*7/Y [ P'"<=ZF]>JQ-YIO*OE
M8L'F#Y;Q/(FUWN#@(BOYJ*7&';S:ZAHXF.%,N=?Y+!4=A>\PYZ$8/1BB;V[4
M!J5'*RHX...._),0?32HC;K]YK)QN6[<5P,\:>?HWWJM'Q.=Y]/>].[H/!LG
M]J<63MLZ/!RCTU[_43%*2;3-F<*M8&7![9(X9UTT[O\^E-F1?W4(/PAS;ZK0
M@[$XT@>DT.(/#.)DC7A/ R1!@<^U7.U$TSZ4< 09[$')_;G@B1O!!"RZO9/^
M@3NP[]QX=5<EK^.M4!MME!C%?";%I]=7Q!QPNR4(O>MN?]AAU&&O;>-OF6-X
M8L[AG+AOGNFT=W%WI)V/MD.'(HV3WF,#*DV3WZF,//*/!UU^_H_"@.SW/TUD
MZ:4I[%X$VNT'Y%=\.\38%WQ_1X1@3;-<!6]\NKP6KV'(Y<:#HG7RY77KY)G*
MZ6CVT$V&KL\A3/ 5V.#LHKL#RVBR5^5X,#Q+"B,:&_J^OM?2]B"YH+NW"7*/
M"AW\!OU)A\X$?^-^<D6G[\,'!E,OXN%HC?"[2%+,_8#ML8<.7;+^8NB82QA4
MWZ0+92Y!JL!()@4ZO2B4]]4R2V^5\S2HPWTU\TQIYCA:V>T!X>;80R_TI&K0
M614:DVMS2\=.OI)N><0I8M&@U%_"^E]27M_-<=Q;.G0#[YG]5T,$&R^.XXGG
M4 +I?S<!C <=]Q#JM-OM?C_J"CGM%GC:82X/QJ+C$.TM/1Y1MF\Q'98@!V)O
M<W]^:PL$1Q?K_K@6;YDU-:7=VA^ ]NH$Q-%[B+M*Q;V2!:>':WZO*JR\<YW2
MWM:X_\YU36S.<^LW]U><J0W^RMN93ZN=Q3K8!>"TEYK^90?H2GTDWV*@RQ?B
M7XJ*;/L.QF.1M[5<6K7D*_[N7+)URMZV7N3H2!==K8P0FRE%MQ1WUHO;X/&M
M)?)>TKC9:@G'LI)Z$R#IN"9=7ZP4Z[]A#-).DWNSKD_ ]XPPF=G$#A8]<PK'
M;F8(FS8;Y#YBVH*U1;ETW#])VA'):P"\WQ8PW69[XLV"<N)*$M"3ZIK.W[:[
M7]G7F$D53[QG:'-\S;UF!4(#A+LRH7,2!7/LYW1AQ"H3;E3EO);AXM7W['B[
MW(;AR73U=NA]KM/D53C.Y?3"'\EMJMJ_%=?^VKY3>.E?I>N&^Q<2W\&G&OXO
MU )3^[WSR9&_ X]?:K/F%^MP%*Q-R1\I 2E+ _!\89#GPA=:H'W3\N6_ 5!+
M P04    " "8A%=4E7)9E \)  "K&   &0   'AL+W=O<FMS:&5E=',O<VAE
M970Q,RYX;6R]66MOV[H9_BM$U@T)H#J2?&_3 $G;=0'6GJ+I:;&/M/3:YHDD
MNB25RW[]GI>49#F.@U-LW9=8HLCW^KPWYNQ.FQN[)G+BOBPJ^^9H[=SFU>FI
MS=942CO0&ZKP9:E-*1U>S>K4;@S)W!\JB],TCB>GI535T?F97_MLSL]T[0I5
MT6<C;%V6TCQ<4J'OWAPE1^W"%[5:.UXX/3_;R!5=D_M]\]G@[;2CDJN2*JMT
M)0PMWQQ=)*\N1[S?;_BFZ,[VG@5KLM#ZAE^N\C=',0M$!66.*4C\W-);*@HF
M!#%^-#2/.I9\L/_<4O^[UQVZ+*2EM[KXKG*W?G,T.Q(Y+65=N"_Z[A_4Z#-F
M>IDNK/\K[L+>T?Q(9+5UNFP.0X)25>%7WC=VZ!V8Q0<.I,V!U,L=&'DIWTDG
MS\^,OA.&=X,:/WA5_6D(IRIVRK4S^*IPSIU_T#J_4T4A9)6+JYPJIY9*+@H2
M5Y63U4KQXX6UY&PD/I$[.W7@RF=/LX;#9>"0'N"0I.*CKMS:BO=53ODN@5.(
MV\F<MC)?IL]2?$?90 R32*1QFCQ#;]C98.CI#7^)#798CCJ6(\]R] O-_CR'
MR4#\+)/M@:]K$MD:6\@*50G'K]*8!U6MA"QU73FAEV+5T3<DI!5+72#&K3CV
M1W1MP=>>O!)_^\LLC8>O?]GO1V)9528+<4WF5F60NOWVGL/?//WM\>\UK9!N
M7/?;KG_5#L<O92&K#(HZ 0!2N2#3@#"9=UM?B'0XBB:3N+<RGT;3V;2W,!RF
MT6@T%1?9CUI9Q=G)>A]M:@--+(D-) :G_ \D !8%-KTF$I^T(S$^Z4A-4U">
M[>DQGD?)>+JWG$#:^6C\C")IO'=H&$\AZSZ/9#P!L='>^F@RBH;S]+_7K5,&
M.DZ3O>7I*)J/]Y>3%,9.4W%5;I#O&:2V<:8A5"Z@Y-_25X.]@U$2[Y,[]LO[
M0O%ODKY^SI1)W^&3)!JF\0Y*XF@Z'_56QO,T2I+M"H>@7*T,K20,TX7:HN5H
M6;E]IFQJ[TA5946= ^TODF0RF*!V% 4KCE,RR^JR+D W%PJ&4L9;".XQ"/A(
M2/#!MKNURM:P&V\43OLL4&Y#S;;AU%AX(+[#N62X41"Z-A"EJK&OQ\&1=9Q"
M(,9OF=,L..361I0:&61IZ$>-;<5#)-12T*T'!RN4*0.)K6/-.2'E$  R]2B7
M\D&LY2T)#=V,H7R Q"9R95%"+:M9!8"ED3=P&K^^#ET(*WJM5A4R8R9!Z"++
M.+VQE)]UH3)%083WD!P] ,SCSR>OQ1T%CFP6O?&@@I&6REC7F4&*'S"!<I);
M#_C,DK7!$AJM@R.#BDXP-(&($<H)98,M"G5#Q0-HRTI4VO&#\YR6T%C<RJ(F
MEIQ7#&VT\0+75:!0@$LXNI.X_:F!>%<;[X.?\! C*V*%&[U@T(.:X7L+(&:Q
M*YT5=)_1!H$)M7EGP-@^97A@CW34[,Z04E1.<#)4,@IU!E:!L ;0#:AG=H?*
MUS.VBU@DRJ3EP$#;:Z3_9,BBQ0/Q0E>KE^PTL4*Y=X@-!H2'!R/-ET6_!/#E
MN<]]L,2#MUQ/Z+[A;NCA,-"/U0#^*F5F-.&\+E4FJ+I51E?!'H@$)%& F,\"
MS3>HX79#&8.9.089('FF <K&2'YSP[/;W(3W8WN0RP8G Z0YCB$&^!KPVO&(
MU\QGFCR %!"\DS^'8I+PZI,>L9Z6K1=L$J?8FK ]P<8F4.4MCP'.(6P8 VSZ
M"B%9&Q]>+;:9)*<:Y=,$>GL/U*]TCW7:M@L- '2UAWS@8R.2PS!E P?,%5F3
M9GL*<P10,-<>+!</8IC^U><NV>#N:</X C1]#=N4, J48ZK6UX0>*PB=02(,
M5U%PW7ZN\'ZRM>6H]/T@D-#+!T;9&R1FC536(1J/MV3L3H?(?MA&S".0MB$)
M_!K]L@'K 5#W8!O@@K J<E%Q&82=X7\52CML4@[$=0WH/)8G'&D*($^%EBHO
M5LNOQZ-)#X7.9%C@:N0CB?DC.M&NX%V!,1<\BKILG=?>6&]_^W;U[B5:0,:1
M_]"/YXZ1]^E3%3OR_ ^C#T6&,;?7 (#6B_ED,&L+>T RTWH@B2@G'K:>8N>[
M@] F)',?(#U_-UF[XQ9BA>.)8P4]"7?ZC)A>R505+^.AAES&286H:-)B*2N
MSU/^H\Y#(Z:J6UW<AII,H:JR<PZDA5W$HL=8*X 4 ;F@0L'271DN9<Y!(BT@
MRCBFMF![01">=;EI8*6[CT]P?:)H14UEWFAK0XPP,*5@"@9)J0%>@SO?@0S$
M%?=9CLMK4S^\W3@+^E* ' );W"E4$>;HFQ8L')3:MTD^8[0[6S#S38O6-PW.
ML;%SWGYOY_ND!74N91\L:U<;GRN4SH'3/S,H[NQ1VSW2[VDU;%-7F O9G,<Y
M'AF=_^<)\<_^?O>7.)2_O$!& 7*[#X>[^\,CU!?B2S%6^W=+R[H0_T0"L^*#
M 8S$);OLHM>('UANB<%@__)Q_<T#]:)D@#:SS!-+;_W-$:3ZPNT[ VBM-E9,
M,0CTY] X&D_3WLIQ@J5X/COICRKC<329[^Z*A]$\F9^@,<AN"KT2R6!K$ RW
MPWAKA>.4*?9F*"2=6?][DD:3.#X17PU'\"=9PD;)O"<HIB+,2N,>19R83[<4
MYTDTZG]/9IC P3',[8=\_4*,IE-LG.YHAI%Z-IOT]1].,.G.=G<-QU$RB[>[
M_+#F[T40N XI?%$[V533K'6%V7&%;Q)8Y<IK[*]0@@>Y-=#=F$+([M4J$A^H
M B3#7<Y%CKD! 69"[_'^?H/ )]M.)@O?KM4;'6I;FU-\.6H32A.;R'Q=(EF
MP]*G.V[A!9/G:'C)-TL8_!"O2&Z(BS95A+Z ._F#I:W)+;(/30K2\@GU?!KA
MXO,_N%;BN.%RR)'8D[&=X1]OA^1]L(\FT3@>][\.MU ?1>-AVO\VV@F#T;#_
M;4L$09:,)_UODWTQYM$P2?L(0W%;<N.[<Y\SW++8A3N &R-N9GN7&D_=7I[V
M+I !U96_)O>-5.7"77*WVMW$7X0+Z.WV<(W_$85&53R$+G$T'DS'1^@B_=5X
M>'%ZXZ^C%]HA+OSCFA 'AC?@^U)C4&]>F$'W_XGS_P!02P,$%     @ F(17
M5#.XZH&% P    D  !D   !X;"]W;W)K<VAE971S+W-H965T,30N>&ULM99M
M;]LV$(#_"J$%0PMHEDC)DIS9!N(DQ08D0-"N+?:1D6B+*$6J)%4G_WY'RI;D
MY@5#BWX1>>3=PSN2Q]-RK_074S-FT4,CI%D%M;7M>129LF8--3/5,@DS6Z4;
M:D'4N\BTFM'*&S4B(G&<10WE,E@O_=B=7B]59P67[$XCTS4-U8\;)M1^%>#@
M./">[VKK!J+ULJ4[]H'9C^V=!BD:*!5OF#1<2:39=A5<X/--ZO2]PB?.]F;2
M1RZ2>Z6^..'O:A7$SB$F6&D=@4+SC5TR(1P(W/AZ8 ;#DLYPVC_2W_G8(99[
M:MBE$I]Y9>M54 2H8EO:"?M>[?]BAWCFCE<J8?P7[7M=D@2H[(Q5S<$8/&BX
M[%OZ<-B'B4$1OV! #@;$^]TOY+V\HI:NEUKMD7;:0',='ZJW!N>X=(?RP6J8
MY6!GUW<:SE?;1T1EA:Z_=KR%';?+R +;:43E@;/I.>0%#B;H5DE;&W0M*U:=
M B)P:O",'#W;D%>)5ZR<H02'B,0$O\)+AD@3STM^(M(3<#J 4P].?WH+7^?D
M,_0\ZG28#<.E@MPP%JDMLC5#6R4@Q;C<H3<5=*DVB$N849T!._/V'/W^6T'B
MY,]?UEX;RR%16/7#A(^&;3N!;B!3#8(;P)I[IOTM.&I 2/\R%YN[%NX3HQNW
M+6X>DY%TAK(P7Y")G(<XRP?Y'TVE:96VU+\.XZYB] <:U7!"3C 8)V$1C_(M
M+6LX1_W]V3@*N'942XLPCB=B$B9%-HB7JFD["X$ZAH47JZV59-_1\&A.DC#.
MYE.1X%'<=%Q4< V,QPD&;U:M1(5XTVKUC3F@\<1T).9IN"CP(&:+,"N207S7
M:<EMIYDG;OF#Z_<,G#\YPRR,)ZAC.P^+#$\BEL;JKG^9X4C!LQT@S9-CQ&&6
M%1.)+-+_?9G( K8Y7XQREH9I/-)N8,'#>A=EV36=\'>W8E#>2M[?BY?8;S#
M"C)_.QE)\Q#NXSCR?-J&2$*M?8E[AC IPOD\G8Y@!\Z>Z%Y-'64/4*>->P6T
M?PT>?9(P]QB?)I++F[!/'.<7B?$"[:E!9Z28I5!BA !<"&(^6QQ%KWE&TME\
M5(#C:IFOJ>)Q]MPS&DVJ4L/TSM=> Z]6)VU?H(;1H;Q?]%5M5.__#6ZIWG%I
MX#)OP32>Y?, Z;[>]H)5K:]Q]\I"Q?3=&GY1F'8*,+]5RAX%M\#PT[/^#U!+
M P04    " "8A%=4JHQY[,T"   ]!P  &0   'AL+W=O<FMS:&5E=',O<VAE
M970Q-2YX;6RM56UOTS 0_BM6F!!(4?/>IJ.MM!<02$Q,FX#/;G)IS!R[V,ZR
M_7O.29IDC$Y\V)?8]_;<<^?XO&JDNM,E@"$/%1=Z[93&[$\]3V<E5%3/Y!X$
M6@JI*FI05#M/[Q70O VJN!?Z_MRK*!/.9M7JKM5F)6O#F8!K171=550]G@.7
MS=H)G(/BANU*8Q7>9K6G.[@%\WU_K5#R!I2<52 TDX(H*-;.67!Z'EO_UN$'
M@T9/]L16LI7RS@I?\K7C6T+ (3,6@>)R#Q? N05"&K][3&=(:0.G^P/ZI[9V
MK&5+-5Q(_I/EIEP[J4-R*&C-S8UL/D-?3V+Q,LEU^R5-YQO-'9+5VLBJ#T8&
M%1/=2A_Z/DP"4O](0-@'A"WO+E'+\I(:NEDIV1!EO1'-;MI2VV@DQX0]E%NC
MT,HPSFPNP5#&B2S(-U."(A>U4B ,^<KHEG%F&.B59S"1=?>R'O2\ PV/@ 8A
MN9+"E)I\%#GD3P$\9#C0# \TS\,7$2\AFY$H<$GHA\$+>-%0=M3B1:]5]I,L
M\9 E;K/$K]O<ET'3&?D/W-Z2]18^L602KY0V-AQ]2"$YWDPF=N0=$ZB1M:8B
MU^]/R=LW:>A''UYMQ4.$:HNL[$$>E/9 [<<G9UFF:LA)0Y6BPCPB46WTX'A"
M4G<Y7SZ5@WB0#TW@@)=T*/CQ&8M@Z?J)_UP]=Y-T/H@',K_DEG"I-8Q$+(UP
MY.\&2? L3%..$=A'4B,90Q\&C\A-Y\%$6D3!I$$%8!$Y3KM[$#6,Y*S?6&KL
M)LG8B.FIYQAD)+'#&OLL&P%J)!XNW'D0C:"^&Z9C(X[_, /9A1L&(]LX<<-%
M</2T3TB K8Y]?Z)9!FZ\#/]V_==-\R8C#4O9M8/;_KNU,-UT&[3#VW#6C<31
MO7M8KJC:,:'QQR@PU)\M$H>H;EAW@I'[=D!NI<%QVVY+?-] 60>T%U*:@V 3
M#"_FY@]02P,$%     @ F(175%/3D'4O$   63,  !D   !X;"]W;W)K<VAE
M971S+W-H965T,38N>&ULS5MM<]LV$OXK')]]8\\PLD19EIVW&2>MI[E)ZTR:
M7N<^0B0DH28)%2 M^W[]/;L 25"B[:37Z]P7222!Q>YB]]D74*^WVMS:M915
M=%_DI7USL*ZJS<O34YNN92'L2&]DB2=+;0I1X=*L3NW&2)'QI"(_3<;C\]-"
MJ/+@[6N^]\F\?:WK*E>E_&0B6Q>%, _O9*ZW;PXF!\V-SVJUKNC&Z=O7&[&2
M/\OJE\TG@ZO3EDJF"EE:I<O(R.6;@ZO)RW=G-)X'_%/)K0U^1R3)0NM;NOB0
MO3D8$T,REVE%% 2^[N1[F>=$"&S\[FD>M$O2Q/!W0_V:98<L"V'E>YW_JK)J
M_>;@XB#*Y%+4>?59;W^07IX9T4MU;ODSVKJQD_E!E-:VTH6?# X*5;IO<>_U
M$$RX&#\R(?$3$N;;+<1<?B<J\?:UT=O(T&A0HQ\L*L\&<ZJD3?FY,GBJ,*]Z
M^YU<5-'-(E<K05JRKT\K4*5GIZFG\,Y12!ZA,$FB'W59K6WT?9G)K$_@%.RT
M/"4-3^^2)RE^)]-1-)W$43).)D_0F[8R3IG>] _)V"-YUI(\8Y)G_X7:GJ9P
M.8IVB;@;.KB1XD-9W%M&U5I&2YW#B52YBHY5B3NZMJ+,[,G+Z.]_NTC&TU=_
MVC>V0!8+:7@;=A_2MM#'./HL[W1^1PRE1F:JBI8B5;FJ'MJQAU&2C./Q>!S<
MF?=O?)&FB'(MRKV%)CM3V_O36>_^3[J2-JIT1" %IO6VE,;N33N;QY>SL_82
MHH5$KE4IRE1&N8231[D2"Y)$@?#QSU+R&M%D?+*OC?/S035.DN[ZBZY$'FV,
M*E.UP2]1Z+JL]J9-+RYBJ*LC/3WOL?A16NM)UR5HF$K]6V8 (9B-LK9F_E-M
MJWW9CR>7 [P?)^?SDQTNB5H<E9*M[EN7(0G&T_T=2[!C\^ET2)*T-D9"&1M:
M1^\;P7$2SR\N3I[1;:[+U8N*+*FA ^X[43KCFU[,XN0L"0UTA[?F^ZKJNP&9
M?1PMZZHV,MC+C7A D((N_(*1P&-AO;/:/^RJ_Y+"1++,R+L"/G;%#YPR(6%(
M6731R9/ ["\FX<# !V;Q=):$SV;=LR2)QY>7CS)XN&>OS?>'$CLA@5OR'LD#
MO FZRFL$AQT4@Q(I$X@0HYT*_]>P]J2N.7P-(U^'>,EX<KDO'\RM?!J##B.@
MS2SI74\#,*+KV73RN JQQ$(;PXJS$?0#WZPM&$YU4:B*]!<MI>Q6G,;3>4</
M^SSIMO(\OKB8/[F6:NX9 =RS6[$9P-,!XYA.+YY%PZ'UEB'Z[B\UFS]+];'[
M'V55T7XLVQ@5:NE\WLEP$0#7;-+MU96#0!'"BF>80U\/"6>! F9G@:<%"G>0
MU6W]>3RY/ ^N+V*@5'!]B<W;5T 7?-\[P:Z;X$O6P5'U(T757V6T%G? I.CP
M?#P>C9%&YCF)8F6IM-D+W<?DI+1(,G[5D.3+R:L3N*R^4^0G"RP3V0?@4TH6
M K4L1'EK1]$7S&XY493#%!M-AHHA GG\3L9 >5'$;B^;L(B!AV>SD%,2".Q/
M>C>K)F^(^7D5KNO9)!0V^S-%FFJ3\6X:PB;#(5]O>(-I!M'J. TB2KC(*+IB
MT!\($CU>4K'!3_S8(BH<SN8!)S$%"AK<RL*#-D(AW )!2,N'T]Z>*?(2FD(_
M-L-\?6%=2L:SSBARJQL@MK1W-1)-( >'^0TAU^'D/%R*0_TB;W>'@(T&Y^Q0
MMO.HG3V'5RNX-TW[ARAK GB.*[1)L <K$?$; UHJ8\D&9$D@ )9L)<I*B3PG
MAG-:0]<FVF ]77(*A7+4\"(DO=M>:R4<T,@<AIB1(!CU&ZH^2P3I!]VS6!3S
M%AJ1Q=F3F[:6.?.2@BQJ6* J09-1*=$BAE2FA*$TD"81,]NU)O8(X#/:7"HK
M(2P6\(E1L1'E0^R-%N)BR59$(O#M#(^ F1QZXFC+.T\Y$ZAO,/$>,;228.AP
M,CKK-J\,$(HXP<@EDB[%:G20A3'@K?3U\595:XQTAL/A!$R$=H6UURI=<WZS
MD$RWS0WUG6R\ACH!])!->L\T;^@&K,"Y>AP=CD.F<;^"[A=UQ8;G&>B<PYO0
M[NJUY04Q5"Z7,O4;XH-,(9%19*/HVOMU !O0)0ECY.^U,FXG"G$KH]]AM!@&
MG;;)G4<)6L?)J@IXA-%%-!DELR.:.AW-\<-+K(U:*5*U6*V,7!%$[J7_?FC(
M$.T!W5N(G(TIJ^6N'ST!.UM"^@R&D(1^W*VKZXK\BU-*7>XN?ICTIK'K=>.#
MY,-/W8/R96LHA[/I:!;:XAYF]&C3MAY.YN?!G&Z@N!,J)W,81>_A>-"D@2A7
MG/>P=-3825E-Y%RJS&KX+X<>XA*QIV)YE\UF.G>0ACM:I&2'":Q[UW$!IXQI
MMGE&5J)A6AZWO&>!#;A]I:K:5>NW)4&VL,YU&\CPH8B\WB.$-^MF+5R(J@%9
M>4<<8B-EF9*1X+%5JU(M$6;+*E@9UDQ0R$D)56UJB2%U3LNZ^./Q8PN%@G^L
MO))M;".,PI:TVVP(""K29$VD@PX$2=#,:O3GIX#33)O6'(8PC$VY!;!4MQP[
M;1.5G,*4L6R\*W!)B$CW.QWN! F/GK8F*"(43:6Z(_L #8=KQ#,\GW$1OX0I
MV6RA88H:EJUP07:&NPZF"0 V+)O=R)2531"/;4,P6JH&C%H122,.# /[Z R:
MPWK:&2L-WZ ^X,C64V]-PC<J>C*=H,9F="?R6GK<L+)1!:4,.Z'@\F)TV?@2
M^0WV2I1>-9]]?&,&>I&;C #H;0,S2]NIF5PZ8+]#.$2)%@PJ@(RU\?9.S.8P
MX]QVC+8#>-N=YK#?!3S V>)#QZ2[H=A3*"! 1DOIHV!Z4F"JQV>JCD=[R>]5
M]AO(8L+W[SY\^>Z*:##K%"=8V[WDC+9F7]IH4QM*6FEY[A^T1M3XPI)LU/-A
MFS+=L8C@'ZT0@LH@CJ0#PGFEL-EEV+<XVN2U]?Z)^&XWVI/E<.'6/A8G76CS
M]=.KZ'CA,W/;9+" ?&!+5(E[:?$\/8$2-O 5Y=R/<Y.@K,&0["0"'J6WS"+(
M-O?E2:3!DT&%6[Y(A05(KH59$5FB<KRDI>4+D<*'K*I<L]X"B9PR4A];75H$
MA^YGBURMS5_9($H-&9_/6U_ZTNDC[,L( -IGXK*I^*[5/19ZS]RQ.>T/N6%)
M0@]HGORZ5KGLV4;+VJ W:*KX^W"QHB7++M_?-[<X4@X[N81D+QDR2H0#T1C/
M"]C65YD/',HP2J6BALO5W(RX4YI :%BNO-$B8W*[2,P<MO'^*7E:AU^*.VT<
M3"*AL"ZD;2G&<7,/RN$2%"&-LFT)GR($O".L4K +3K816!UV<$ 84=W*(G&:
MVHKMTM2N-!C:'#$,I*.N\P"C\'!U3=T 6*1QN6"UU3N]#U<6.N\+DJ"AS:6K
M=U1*$GE7?-]L6G^CI]_71F<4&,S>&.!_EBD?S@O8, $QL[0&E(@L<PFJ U1B
MD[B#FGYI&1E<.O;%8B@20R)M%*,B'6IE311?J]5:=B<.US+C"'9=4YACV@Q2
MX]'L*/9AGS+AW".@TUB7*?TJ<\2!:TBCP5YY&T<_C:Y&D0=17<H7!9T=[>F%
M%YF,QN.C4, GM/>-8M+*7&2I^V$.'$KM+MCALD7Z@R0SS1$E8,25WPXL:%,4
M,%@)9MM$RI4L68L+*E0H 2D0LE :PGY3%V.(IX\@"_;81JF7@EK)Z9&7ALI\
M3^;CAW<WGT>^(_,M1N,-AKL#P[,>4Y<#".]Q[^$-.E<99U<.CS^4!&@R8^%\
M%.S'0 J1Q D1\'(\$[CC1D*7+M@U.3U K^PSX*.\\!DAUS-!R/=I=5-+H!9C
MQ(S;0%YM90YD*MP19B^0,XCU<HTONS8VA .LR25JJJKQB+X=.IA;&(U2+<BA
MA+E%,A>SB+Z<I=Z1PPZ$FP+P1HT:=XE"@ZM/KD-IA_'M:EPD?50 ,;RV>4R\
MTWGW)D*1>N,+9L> Y_<1!'4]"^8N@,D&(?=5\7P'?Q"S7CZ%.^,C^IP?M20>
MP9A/#$P\M>W!<JG>7-VTZ,,>%6!.=] XF@173\#/XX+NKM+<'_=(_]SBT.ZH
MZ=G1'LWWOE>U4XCY/L9 L8W=DM2@H@U7Q:(VUN4-W#[SV27;&X. LC3"-PDX
M%Y!POF7<UEP@MP"D(>_QK3&W\URVR7SY8EESZ['KB2$W16U7N*#NFM'4C=0I
M\DE&(4 H'V8,LKZ""U)A*'M5>[=F4[OZ^J.5M:E7/>R@+FU&DK9H;*.YQG+A
M*AVU4733U:?<#95. P-,KHVN5^O=]K ?&0QTAS4V3'2XL!0/32HILVY'7 &]
MUGGFB+A9.R35,AR529@1N[_LLC#6^%(@P77=1J?%<$67"R-!\NVY)I?$#M6&
M:_-MD[J%W;+6FGH"[5D5V0,-7^O2H^Z>%([]-C5-<Z$*:'!AN6'CKAG$#,?U
M4G?="$,H)LV=[_(L&3(69%"#'<Z]M4?1#WI+J7 ,\5SR[!?D=L,^KTX5C;>I
M@J-YM>M;C@-O>VV78]]V&(J-Y&!&A3PY LNQ=WY X=&U=D3!1\R^7]-EI9U_
ME200=P,;60I!3:@5U??5D%1L+*YR<W&S[7URI]Y)0-IV@I'[+&2NL(['!;^.
M(G?*U2WG]NW) 79(<GW@SL^IW.\?6PKGL#RFZ2CUSUVZ?B/W@ENU4!U&C7LK
M=W-T;8;T7045N@N;PT>$HMP_7.7>]V!F]%Q6!$-X)N$9_67'W5_!Z]Z49[HL
MX8L=9$HE1U+W 7*3T7SF/G"1((B[#VS0BDW?A'GL)[HLR[KHZK4?.4FE05B2
M"X(_[^6 X8JMB\#)+.*48\Q?<[IBL8Z>2@B"%")Q,WC^Q,U/W/RGCZ:?FKGK
M/5QB/NQZ3'="_/%/]9A0.4XK7D=3=S6EJ_:P>TUU/+T<20#G.P[]0DUL4-VG
MX9'/8*']Z('#0 =T,D+>]&@?X _QU#^C_9;EVO?3KMV[(3?NW9 K.NDU;:W-
M+_ME38.<TR%,\0TTK%YV/;2XC>KA,4K["DIS6MN^A@*)]4I2](Q]+>C&<GPH
M^^<\_N2)#^$OPD/SQYLJQ/IO=1E$63[-#SJ"F/GC]Y\0:/.LZ<4W7=2JZ^=B
M5'N0Q?D612^HN<"%-FRW<O\5F^;@\C$IYJ/SYX1PP6\A!25ZW@SB-ARU;=S8
M=>:PB@N1O3;1DB#MR-E6U\RD4M2=X2%=\ =&2'>;0\7H"D-S]TX6Q9OV<O;5
M>OUP)Q_^4GU^A5'\%?KLGXE^I;*NBDJFMXVZD.J:['^LK<GX_T-=P^9W@UJ(
M.&D-,+CQ]5H5T1=Y#]GX77M#W?"HJ[0:9?L7(7K:;EYH^-.TG?Q5RCX;C;VR
MNS<>AM3>.O3T<6U:=1]0"71K0^T\\H+ALQH)7[!X5B7/:F1('S:BTV5:F%M2
MR6AZ%+V(I@/FV%2%W&:HZ362:BMEH*5D%P6'WM4_#?[N $VL^$\==. *VNZ?
M#^W=]G\C5^[O$MUP]Z>3'WWS,Y=+3*7L[B R[H\<[J+2&_[SQ$)7E2[XYUJB
MDC(T ,^7&MOB+VB!]M\T;_\#4$L#!!0    ( )B$5U1;A0FM+@8  &$0   9
M    >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;+58;6_;-A#^*X07#!V@VI+\
MEC0O0)*V:($6"9JNQ3[2TLGB2HDJ2<7Q?OWN3B^1XR1KA^U++))WS[WPN2.9
MDXVQWUP.X,5=H4MW.LJ]KUY-)B[)H9!N;"HH<24SMI >AW8]<94%F;)2H2=Q
M&"XFA53EZ.R$YZ[MV8FIO58E7%OAZJ*0=GL!VFQ.1]&HF_BDUKFGB<G92277
M< /^]^K:XFC2HZ2J@-(I4PH+V>GH/'IU,2-Y%OBB8.,&WX(B61GSC0;OT]-1
M2 Z!AL03@L2?6[@$K0D(W?C>8HYZDZ0X_.[0WW+L&,M*.K@T^JM*?7XZ.AR)
M%#)9:__);-Y!&\^<\!*C'?\5FT8VFHY$4CMOBE89/2A4V?S*NS8/ X7#\ F%
MN%6(V>_&$'OY6GIY=F+-1EB21C3ZX%!9&YU3)6W*C;>XJE#/GWT #,F=3#QB
MT<PD:?4N&KWX";TH%A]-Z7,GWI0II+L $W2B]R3N/+F(GT5\#<E83*- Q&$<
M/8,W[2.;,M[T)R+; 9KU0#,&FOUTBI[7B\*Q:'3%5Q":OD0"UF.EB$PF2BNO
MP 7B%G*5:)2292K@>ZTJ)+T7E558)DIO18T9MJ(T92++!+1<:1!8E59Z5:X;
M8#<6GW,0A7%>.+4N5:90&$&,9?*;3/@<T('G482T(+#227C@HS!)4E<*4K':
M"E-;D1B+R-(C0H:6@%VGA0&@22291L\P^ES>(J JR71G"]WJ0_>Y]&R\-![I
M[<$JJ84WK;72&:U2G$Y;$%JMC%-D82S.'06(!()BA9GJ2!1P&$WBM9*K+AKI
MG$$$0MLHG[>9>>#=K[\<QN'TF-/:0*!3A1-K*#%$C=MB9;E&-6L*1+  O<HY
M1O"GL<IOV[R+2U-4LMR20+0\=MC-R']+V4*A0>[9'U6FZE:EM=08EQ5(AL9O
M7MSD:&_39K3$!"$^-J;:(?L<(>LF[;FJQN*=V< MV  A>^JITGD*U T](R-@
M'2YBSA_UCHTGM;7$3?2*S@,T#$6ES1:(@)^8M5*E@C$T)[B2EGWO2+4%B6:
M>L9C&X9_0R93'$9'8B,Q*Q5Z<J>($YCS@]GX"-N@UAAB0*.X&['6P72\O%^V
MX"K@KJ^WXWYWWF>4OA02E0)YVI0#A40;C"1 5LMVRU> ?@,[#L3P3"CO6"X@
MD(VI-4:[K;#8B!&8[99RR+ F7@MT,O85AOG84G6[MJA)A. ZHK#06%PAZQMY
MN49F-1JIX>K :N!]I%WK*P5#9<*(6ZEK$.M:(CL] !-H*.6MXHP@S"T@X?%$
M%U=XO!+YL,HE';:.@^LVVM6KW=[%]$ D3I1SX-ORW3 ?M<&JL*)VG%R?*]N3
MX'X/W@YK35@Z.5^:["4IM8CDCRH371-1T"AIQN'Q=<?*G5X9B!)\P"+1,2]U
M1*5O\N@E)WFGQ'=;PM <4?W>Y&4+A5FL;=L.LP%H"BL_--VJ?=@1V/5P2$RN
MS:82!UWN0FKV](8.]J:W9T;C#8J8Y+EW-]<H]5=;R ]:>9]'2L @T&%.G[>*
M"*U-)UZPM*D=PKG?7O7[^&]_]RK_R9507#T([#&V'(@HG@7+^:+'.1!'.!$O
M]]0'R?CQ.*ZXR7:D&N83+1\%X3P<&(X6P?QP(>X)\'!KAOJ=6A0N@V48[5D^
M#(/Y<B$^&X]%]QP0I6"!*8B&*5@&T2+>.<IV6?P<H'S\4.52^0^H\0<>!-14
MR?C "!^1\=-JZ$(\B#">XB8?T>QT7S0*HEE,:[.]M>@P6$X/:6V^O[8,%HW>
M8G]M%BRF$642NV"&N[LG,9]CSJ-VP_CZ)ZZ[GK^'-H^"<#9%,>?:P*^Q-Q#'
MOG ??ZU<8FH</M1\@72/C^+?Q*X\;M@]WQOC'QXAVSY7;NJJTGS.H->J;!Y[
MS;NK.<?I*O;PLLC'\__7))@A;_9O"@,J1,-!*"ZERYL;"%TW9$&IVV]Y!7I?
M6P[VGVH "18'\72'<6$PPRW[D:YD5G1>-H;A+LF;^Z*QCQJ:(>OB8?'&RV Z
MZQGXV#MF,GCVX5ULS8];)Y@QS0NPG^W?S^?-L_%>O'E\?Y1VC1=#]"Q#U7"\
MG(^:D+J!-Q4_(E?&XY.4/W.0>(4A 5S/C/'=@ ST_U4X^QM02P,$%     @
MF(175.-1V: 9#0  H2H  !D   !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL
MS5IK<]LV%OTK'&_:L6=HF2^)4EXS3K+9>B9M/7;:SGZ$2$A"0A$J2%I1?_V>
M"X D:#U2M]M./R060?#BON^YEWRYE>ISM>*\]KZLB[)Z=;:JZ\WSJZLJ6_$U
MJT9RPTO<64BU9C4NU?*JVBC.<OW0NKB*@F!RM6:B/'O]4J_=JM<O95,7HN2W
MRJN:]9JIW1M>R.VKL_"L7;@3RU5-"U>O7V[8DM_S^J?-K<+554<E%VM>5D*6
MGN*+5V?7X?,W">W7&WX6?%LYOSV29"[E9[JXR5^=!<00+WA6$P6&/P_\+2\*
M(@0V?K4TS[HCZ4'W=TO]O98=LLQ9Q=_*XA>1UZM79],S+^<+UA3UG=Q^QZT\
M8Z*7R:+2_WM;LS>,S[RLJ6JYM@^#@[4HS5_VQ>K!>6 :''D@L@]$FF]SD.;R
M':O9ZY=*;CU%NT&-?FA1]=-@3I1DE/M:X:[ <_7KFS*3:^Y]9%]X]?*J!D5:
MO\KLTV_,T]&1I\/(^UZ6]:KR_EWF/!\2N (K'3]1R\^;Z"3%=SP;>7'H>U$0
MA2?HQ9U\L:87/UF^ ;FD(Y=H<LD?5-?)IRG GE<;EO%79XB@BJL'?O;ZVW]-
MHR!^X87AR'/)>[=*/@CM_(B]X:T?&^5M!K>%N5WKVXH7K!;ETJNEE\$^HFSH
M"I&L&,5"1:N5J.K*DPNO7G&0*!">M.E<E%B13<7*O+IX[K7L_=5_87B^GG.E
MC=\NDA/0?P'^"V?>VT8I7M8D92\^[0VC_S]#[WD.=17=]3/B+)K&[L+$'X\G
M[D*,'6&W<%^SFG=74S]-^GMAY*>SJ7,SGO97'V6-DS,K;KN:!'X0)?WES(_'
MSF7H3R8S1Y\+CL?SH;*\\SDO^4+4%W^7VB9^.$N[J_.QGTSCB_XZ]M-Q<'%$
M8VDP[G=&?I(Z.\_'07CQ2&%Y*W-_^"R(^D=2?S9V#T_\:.P0N3T>4;V)$]",
M7)M#[TD0.@MQZB?A=$\Q'Q%F)V*6%B@2=YRIRN.43H<Q0;'@FV! :)J 0!)!
M]<%.!"U?++@N<=KB"'00Q4&'XQ]A'R6C]!L0#$>3;PQ%LP":&T.HV(TTURCV
M%3W4LI@+' 7/S'#"G-=;SBEE()\=Y(%(ZQ1C':."B9M:JEU[7W&/538#5?_H
M_//^H A0YK%@PM/?G+BX<1V U2?4Y+K7#%X\=1TP\*-HD)9"?SKI712GD 5Q
MQ'G.[<\+ZSKD%@LEUW]5-O@!L++2,7TPG%(_3@(G!R9!S_;$GR1]=ON9%0TS
M.([\A&GGZ[/(S(GJ:)RX5ZESC]AI2L4SN2S%;S8YVHS8DYLX/(53I/C493CN
M=?^#I#!MX/'S L[_!4BY<MB*D--#YPKYR[D*I_W5W;=LO7GQ3K,#"^6B'FC2
MM<QYA(P:#[/8>.+(&*:S=YYE"^IZ;)%S%+$@O3BT'DRB ^MC/XPF;H:6V>=+
M L(Y<LN:1#9VZ8ZL]FE$?A0&!V@G+N4^38>. 7]$4*C>-+%C]*E#,NVM\M>F
M\1N=Z_!/J-S[M6&J!GN43I$@?&^+ !8%5,/@J&N3Q=N(5KQNE&$*F\<:G!5,
MK#4]:W7+,04IA2:!1*:RE6E>1"THB&D[<1,%+_;]1M\(7USHM$N.KH@%YCU+
M1A/T#T5!>G&\'H<C\6PI 3=%L8,DBPI!,M]I"7)0U _(XV$S\GZAPL8?!)(V
M*/Q.^9.A_ <B(&\4Z0![IWO21*/TM#2LJ.2?$.FC+F?/TE'<'4-(V<T66Y3
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
M6J[USQ5G\'O:@/L+*>OV@@[HODI]_3]02P,$%     @ F(175%O(7HG%!
M)@L  !D   !X;"]W;W)K<VAE971S+W-H965T,3DN>&ULI59-<]LV$/TK.ZK3
MDT))M&6[J>T9VTDG/63JB=OF#)%+$1,08 %0LOKK^Q:D:-F3J(=<)!+<?7AO
MOX"KK?-?0\T<Z:DQ-EQ/ZAC;=[-9*&IN5,A<RQ9?*N<;%?'JU[/0>E9E<FK,
M+)_/SV>-TG9R<Y76'OS-E>NBT98?/(6N:93?W;%QV^O)8K)?^*S7=92%V<U5
MJ];\R/&O]L'C;3:BE+IA&[2SY+FZGMPNWMV=B7TR^%OS-AP\DRA9.?=57GXO
MKR=S(<2&BR@("G\;OF=C! @T_ADP)^.6XGCXO$?_+6F'EI4*?._,%UW&^GIR
M.:&2*]69^-EM/_*@9REXA3,A_=*VM\U/)U1T(;IF< :#1MO^7ST-<3APN)Q_
MQR$?'/+$N]\HL7ROHKJY\FY+7JR!)@]):O(&.6TE*8_1XZN&7[SYT+3&[9CI
MCBU7.M*#439<S2*PQ6)6##AW/4[^'9Q%3I^<C76@#[;D\B7 #*1&9OF>V5U^
M%/$]%QF=+J:4S_/%$;S34>EIPCO] :4O@,]&X+,$?/;#(3R.L\@S^C86?6%2
MMJ2"?42?D:O(==)9JZ!+K;SF0*%U-CA/&[RZ+J!AHO:,]HG4)@PT,#4N1*HZ
M8]Y&=%;"# X/K?*Q7^*!0,CHSYH##\ZMU^A9;7948!L-%'! \4-"*4O1ZU67
MVBS9)^<CWVD->5X9X+7>;73)B=ZA8:"NI>@HSY9O9+/";=@#;"3X\T^7^>+B
M5PK*]!$ P!9S9&3^$BVZJ S\3Q;GV0*=9(RP03"EO*9I^?35\CP%Z&1QEN4O
MORQ^R>B/BF+:1C6NLS%,2;70\H0X18:NDWEV/GHEG'FV'!>VT(*H[]3*L*@$
MU! 9%0F5S\V*_5C]R5\(39'6T'*:9&:7T?V1@E FN)187>@6G"0^M=KPX5HI
M>O85TV"0Z;=#?#VUP^1]KAXAN1KJ$CN.F:!M[4A!4&?%H4GDD8;;(&;'U&P9
ME$I:IJ7SE^JF"38%ZA4NTHO%],6Z5VEN5)D">E3,F/649"CK4YIJ%D.4U$9I
MDU)3>=>0*C%X4?->1>>3)H=0^/_9(X!<1$JJ"L&6-@2KDB-[@'&*I2J*#A@I
M#V-<5T:O5=(R!4 ?=(O#687 4<JC%WM8.*]Y[#5N:UW4J3">4_6J('"0;R3Y
MTH@'9?%<6=J6&OW9H9JD-!VH#\6&>P$"HNU:TB/,D [(U%&Z#,P\\HY$4J6?
ML*"L!8:4O(PDM&,---PB0%#)>::;KAE:"9TDXXP+7>F^0D6DYSY0:NTYC37$
M1XI2T6)).U82?]1QB46#FX;P.AB!SD\%* V[ H<XG%,&HHCL+2HZ[X%2AC%(
M,AF[4.'65O_;9ZRS52?'&X6H8I<,]YTKI!4R9M\6G?>":+1:::/C3G:6B-W+
MA#:Z3#KN,+9LP?0H1W>VG_>!-HSANIR_(56A5BBR?285V&]TP5.Z6.Z_5QI_
MW[!)'24ID6F_2Z@2O.2#FG]MGK1**T+(*')?D\]"X'!RELW',2;1\6*J$M@*
M?7&DW[-O';:S@[M+PWZ=;F@!78U*Z*\QX^IX";SM[S[/YOT-\I/R:XW2-US!
M=9Y=+"?D^UM9_Q)=FVY"X(E[57JL<9%E+P;X7CD7]R^RP7@UOOD/4$L#!!0
M   ( )B$5U1*%@+4M@D  (T7   9    >&PO=V]R:W-H965T<R]S:&5E=#(P
M+GAM;*U847/;N!'^*QCUVB=%MN6DER:.9Q)?>I>99)JY7)MGB%R*J$&" 4#)
MZJ_OMPN HN0X+^V++5' 8O?;;[]=\&;O_'UHB:)ZZ&P?WBS:&(=7%Q>A:JG3
M8>4&ZO%+XWRG([[Z[448/.E:-G7V8GUY^=>+3IM^<7LCSS[[VQLW1FMZ^NQ5
M&+M.^\,[LF[_9G&U* ]^-]LV\H.+VYM!;^D+Q7\.GSV^74Q6:M-1'XSKE:?F
MS>+MU:MWSWF]+/B7H7V8?58<R<:Y>_[RH7ZSN&2'R%(5V8+&OQW=D;5L"&Y\
MRS87TY&\<?ZY6/^[Q(Y8-CK0G;-?31W;-XN7"U53HT<;?W?[WRC'\X+M5<X&
M^:OV:>WUY4)58XBNRYOA06?Z]%\_9!QF&UX^M6&=-ZS%[W20>/F+COKVQKN]
M\KP:UOB#A"J[X9SI.2E?HL>O!OOB[9WK.A.!<@Q*][6Z<WTT_9;ZRE"XN8@X
M@A=>5-G<NV1N_82YJ[7Z! MM4._[FNI3 Q?P;7)P71Q\M_ZAQ5^H6JGKJZ5:
M7ZZO?F#O>@KX6NQ=_^\!G]A_/ME_+O:?_[\ _;&YJ^N5^J%)=6>UZ=(/'_4^
MC :KOI+2GE!IFW^#_2HZ59&/*%%E::NM+/:T':V.SA]4)2:6RO25'6N85K98
MTMX$?H"ML275<R585;G1!U*N49L1/U,(*SZ314!.V6&;&P-VA='KOB+LV)%'
ME0=V!CPVG?D/J<;T^-7 (HZY5SH$AV^1:E1!;/E$G)*\DP-:O2-%(9I.%G$8
M@W<[4_.7JO*CMD%!J?CI1F\L*>M"H) #MK(K0= 0/SX[<$+)1+/5(ALY<%AW
MW:#[ X-1N3XX:VK9>(PA1#R0-,'9UN#T/;S7?>\B'*+:<"I@"]H(8P)?BA#>
M5D0,O"0!./: BBW]Y4\OUU<_OP[*#<",50R!L K52D1Q<!Y)@B%DI(?6+;'@
M /?UQB"&PY2^QKLN'P;H(GG.36V '""S!S%;(MUN00U$ DBL5>R\P*YY)WD.
ME)J&:04/P .XALPR(>%/@!@BADJ'5C40?/CF9P@!N-HPK/"S@3&UA0O8F V"
M&I).5GPDQW*7.<!JY3PRO"JTAJ-:U28,HSB)O.DLE;#(OGOA\!G46(,,6N*<
MX10I# X;E''GNS:VI)]=(L_-CZL)_D>/1B*M1HV0.*_BWBEZH&I,W$K@XCR4
M A(H;,3.0-]&_II/1AFT.C(_-F0-[5)@C#7UV%$1DW>E_H S4V0FI%)@+_4
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
M"_![XUPL7_B Z0W\[7\!4$L#!!0    ( )B$5U3'*DX>RP<  .L7   9
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
M!YS9]4%L:^/E0W<":8]QH&2M3,@4+U+7=R@Y(1?'J$X8K)1C1M$0^4,C.*\
MTTNE7&'!?@-\A:^O7O@PC:+X)'?:2V&'3&*.LA1*#B=*=V*A(&B?*]:N<2OM
MX$.95!G;<',HTT4DW0:IB/T4,OM_X8W#W(_&^4@,=Q74+XQ=3-H85UG033B!
MMP:5 C/]T?1GXE^>:QXGP?NSHE<Y&9J9XTP[R_TJ-$8=^/AM5\C[;P3B-1CO
M='7,](=TUFL4[<1]J?TZ=PMAW$A3H?GVNNJ?@<.< 3)V0#",7OOFLGLYLZXN
M,4BJ*I6%,*<'LGZ<-]+FIZ4:X_/F^R?)^@R2[0M520X(]*9N;G/% 0D:\"O:
M],:5MFH,-)EOWKI1=SRY^<M?_TO4>#S.R*&<HXI+$Z6(O0\'UU'LAVT_"5VF
MW3^Y&HZO8[K$BP5=KF:+;O&Q.ZL:-[L>G9WI.7.=BOAZRB:S*:Y7W;/G<SD_
MSK#[B)3<>#+T,">+&5UFTX0N"Q@XQAQ0=2>('RG[Y>+>M@Y..DN#>J.W01"-
M/.^%:W'-XF2"6)\RV.M;Q-N+YUB[>W[%YA/Z^_+@M/71"\]T-J;+?(*4SH?Q
M)#[DS:FOAJ/>!]A2X!2GS\PTTJ"W^V^QW=/N2_8[_P%W)^X_@^/E<RT1V4*L
ML!6O,K.!_RK0WEA5N\^Y2V6M*MW/7&!LUR2 ]952MKTA ]WW_?O_ 5!+ P04
M    " "8A%=4W)N.9?$*  !0(@  &0   'AL+W=O<FMS:&5E=',O<VAE970R
M,BYX;6S56EMSV[H1_BL8U6WM&9F2*,FRX\M,G$O/F6D:3USG3!\A$I+0D(0"
M@)9U?GUW%R %4J(=Y[0/?9%$<K'8R[<7+'6U4?J;60EAV5.>%>:ZM[)V_68P
M,,E*Y-Q$:BT*>+)0.N<6+O5R8-9:\)06Y=D@'@[/!CF71>_FBN[=Z9LK5=I,
M%N).,U/F.=?;6Y&IS75OU*MN?)'+E<4;@YNK-5^*>V$?UG<:K@8UEU3FHC!2
M%4R+Q77O[>C-[03IB>"K%!L3_&:HR5RI;WCQ:WK=&Z) (A.)10X<OA[%.Y%E
MR C$^.YY]NHM<6'XN^+^D70'7>;<B'<J^TVF=G7=.^^Q5"QXF=DO:O.+\/I,
MD5^B,D.?;.-HXVF/):6Q*O>+08)<%NZ;/WD[! O.AQT+8K\@)KG=1B3E>V[Y
MS956&Z:1&KCA#U*55H-PLD"GW%L-3R6LLS?W5B7?3F]!KY2]4SGXVG TU]7
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
M! G@^4(I6UW@!O6?2&[^ U!+ P04    " "8A%=4Z47S14P#  !N"P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6S-5EMOVS84_BN$-NR)B'@3);6V
M@23MMCX$"))UPQX9B;:%2J)'TG'V[W<HV1K5)0ZPHD5?1/*0YSN7CX<ZBX.Q
MG]Q6:X^>NK9WRV3K_>Y-FKIJJSOE+LQ.]["S-K93'I9VD[J=U:H>E+HV983(
MM%--GZP6@^S6KA9F[]NFU[<6N7W7*?OWE6[-89G0Y"2X:S9;'P3I:K%3&WVO
M_<?=K855.J'43:=[UY@>6;U>)I?TS94(YX<#OS?ZX*(Y"I$\&/,I+#[4RX0$
MAW2K*Q\0% R/^EJW;0 "-_XZ8B:3R: 8ST_H/P^Q0RP/RNEKT_[1U'Z[3(H$
MU7JM]JV_,X=?]3&>+.!5IG7#%QW&LXPDJ-H[;[JC,GC0-?TXJJ=C'B*%XB4%
M=E1@@]^CH<'+=\JKU<*: [+A-*"%R1#JH W.-7T@Y=Y;V&U SZ_N]092[-&'
M?B08,K5(/0"'[;0Z@ER-(.P%$,K0C>G]UJ'W?:WK.4 *'DUNL9-;5^PLXCM=
M72!.,6*$T3-X? J3#WC\_X8Y0Q43JAA0Q9<E[SP(E1?H&2#TTP\%(_SM-QMO
M=+55?5.I%MRQCTVE@<Y0/'8NNS9V9ZSR&F:],VU3P[Q&OQD/IRZ=T]XAY1$P
MJ+L';2<6)T,_(HI%QG#&\D@F2X*Y%+%$8L9X)&"8D1)3*EXU1F;&F)"8E$4D
M$[3$(L\B24EQ7K"96I[EF&?9-R?B-/ZIE1T+ZDPROY"U._VH^[V>)3D3#,M9
MXC,P2V@L"3/*WD82CDG.L>02_6*-<^C6FG7CXYP7$G,A(TDN<2'I6=1,<B ]
M1]=JUP3*WS_!WZAN_-Y"3!%90"<I9E&(F;\9*>-=ACDGWR.QY&L2*S@!@N)+
M+AA4QJP,_TL!PT4FL<S*EXC-*,>YC$N.\\\J]QEBH2;+@K]&+#"5S:Y(*69/
M!(OO$Q.8<OH=TDK+KTDKRQDF/$X2%SP\>J_0*FD&NOF+]2I+J-?X;G @HSR/
MFA&*2_$ZK06\%O-'FLM\YAV?U2\/S_&D\-RO.XUZH$[;S=#I.529?>_'=FB2
M3LWDY=A#_7M\[$1OE-TTO4.M7H,JN<BS!-FQNQL7WNR&CNK!>.C/AND6&F)M
MPP'87QOC3XM@8&JQ5_\ 4$L#!!0    ( )B$5U2T"ZTEE2,  #MR   9
M>&PO=V]R:W-H965T<R]S:&5E=#(T+GAM;,U=69,;M[7^*UVZOJE150]%<G9O
M5:.QG"@E1RJ-'54>039(PFHVF%Z&&O_Z>U8 33:ID>VD[HLMDMU8#L[YSH[Y
M=NOKC\W*VC;[M"ZKYKMGJ[;=?/WB13-?V;5I1GYC*_AEX>NU:>%CO7S1;&IK
M"GII7;Z8CL>7+];&5<^^_Y:^>U=__ZWOVM)5]EV=-=UZ;>K'E[;TV^^>39[I
M%^_=<M7B%R^^_W9CEO;>MK]LWM7PZ448I7!K6S7.5UEM%]\]NYU\_7)*+] 3
M_W1VVR3_SG K,^\_XH?7Q7?/QK@B6]IYBT,8^-^#O;-EB2/!.OXM@SX+<^*+
MZ;]U]!]I\["9F6GLG2\_N*)=???L^EE6V(7IRO:]W_[-RH8N<+RY+QOZ;[;E
M9R_AX7G7M'XM+\,*UJ[B_YM/0HCDA>OQ@1>F\L*4ULT3T2I_,*WY_MO:;[,:
MGX;1\!^T57H;%N<J/)7[MH9?';S7?G_/IY'Y17;OEI5;N+FIVNQV/O==U;IJ
MF;WSI9L[VV2F*K)73>N %/#I1+]__NV+%A:"P[V8RZ0O>=+I@4DGT^PG7[6K
M)GM5%;;H#_ "=A"V,=5MO)P>'?$'.Q]E9Y,\FXZGDR/CG06RG-%X9W\R68Y,
M?1ZF/J>ISP],_:YVU=QM2A@:9K_S50,S%09Y>(C2OWNP[.>5;6RV<)6!1TR9
M-2WL  2NA3W5-@,AW\#_B\RA[,Q]7<!S%MBS7=%GH<,FSK"TE:U-63[B[W;3
M\KOMRF:_5 X_W;?$.K"2V[6M@:0C7 2-MMZ8ZA''FX<UP@N#BX/YRJZPF>]J
M70B?0KORL"$8'7]INEGC"F=J/"-8QG;EYJML:[.5>8 I<9ZV]F6)<[JJM;5M
MVE%V6Y;\25:T,T%MJL80G#0\SLS:*K.E \G$!8^R.UNW!BFVYM?@GT A7V<;
MV+ O&I#=Q^35VLY+TS3 7[#;UN.J$&GQGTBW>5?7L&=Y&8^D@8]T?$PZNU@
MO!%)\?DXW-SP*K>PL:SR;8;L62,E=>C/T7ETA)<O B]?'&6_7_@\#H@',_#1
M$5 I?=ULS-Q^]XQV7S_89WO#$BF87YFUX<<#K*,4=NTCL_( TPYS=VW_W3E8
M E&OXQ78L )D#Z!\M]XPW6>/0/$*]!I.C/,6%N@/;(*C\E%M?$VS":? <#"
M%58KG9FYTK7 O3D\^V"KSM(/]A,HY$9F+%PS+WW3U;2^I:D+$2%</$X\/"+P
M^;SM@#3P'FBO!M[H2AP-N*G.%K5?BRR%_3&WK7W39DV"AW'_0!"2=A2]84@A
M3NUM98[# <MZ&)".#0Z&^+*M.];9)*0@<$ #4.2+4U?!7@F&X(QJV '\ "K8
MUHA3K?DD^\VSA7%U]F#*SJ:GB>.;.1QCX_B4&#5L]N\.=A.DAM@G#H!O\6GA
M&!VL51FI$M."& EWOO2^V#K$$$ /5]/9MTBD:CG*CLC399"GRZ/R=&>:5?8C
M6%+9ZXHML@-:X7<,DWU@4' %\  (1+8"@P;$HG1 ,#S;!]@(G^6FJ^<K@R?.
MV@ H5KLEG'J),-/5*%R$2+5%IB%-#T0$*6H0?F8P$:X !0I(3&"3T9J :$5V
M0DK#=PV<3O,<R?]U]I?_N9Z.S[[YC___7];4;)1D8%+8]0QH@6:%_H[F!?YG
M#/^9W #Y6'&$W[_*+O/QQ33Y?)5?7I\GGZ_SZ\E5^/RZ D5CD751SBNPPH%N
M8)=VL/7DI8MI/AVGHUQ,\NGU9?+%^05\<:U?'&&UJ\!J5T=YY#UL?\?BJ7T%
M_YZS0 ]QW1\;,>,'@.5N"T] ?/C12+]X3G@B.8GSC[?W+S,':(QCW/^2_<./
MZ-?3R92/<CK^1BC_,U(^._G9;]P\NSH?/_\:#+[UIG2+1T7JVSZ I"^.:+#)
M-X".KD&TJPK 8(!(&L&)LMA!()><.>H)-1\(NL5\L)]0%Q%&B;Y>@A 2\L&O
M8;7 *B4I<'G(;#:U-V#G\#R G6(Y$#:6I6> 8RJM+4A9X4N_?&3D->6\*WD=
MO36B.5.Q6>36:HLH=*;X#;S;0^-$Y= ,X!4BO* ;!>1B=6-A3Z)> OT UWU*
M1--L4BMGAYX+U A ?UTN:<D*M :L F *%"%M@19DMH1$==#98"_5!T^J9^^U
M*].*PB2*P'+MYK3;J(V+X_/&8)FJ"$:[_ =L*48;.*.\?-#A )R/@#S #A9@
ME&P$LP!R1^:>7.2,.[CH_E$TA,*T"E@ACC-"+#<J1#L+@'/ZNZDZ]&[$7\K#
M8:+: B6]-<V>S8CJS3^0J31L+@:9_*R<_P.&_A= G8IY(LP_&= LM-%CDCP=
MGX[/@R2_M\)&V7M8#$Q/%K2(]/7Y]?-$2M%,3-:"GQZ (^%T[1HT/+E\)'>P
M-[2T"F?5^-\72;7.@V@F%@NHO2(QPW& E2V6/1:#8:Q!MEVE;E@T-69=79"/
MT)-Q7!;Q-CBH'X&*Q*1B/['E9K,WOBK@,ZFGF:D^9F])U JFT(D0[LWKEV_?
M"VV>TQ(]O%PS>]%K7EYC>8$%F!)^0JQZ0,E7NM?11 RT0!Z*C-YM8#EXCFR\
MP531[@9+$DT"P*Y2O"#ZY]S,2GN(GF!:^&ZYZBMI8(SI*'L+C*HG4]A9"Z;<
M'$'H,3N!)2VZFO8(9SZOW8R-5F!(F]T\5\\2CBM[U=6(C8 .3+,W'E;Y=A/-
M/45$U/ZX?Y8^A#4Q]&'H&=E(GO'!5_84-]>X3Z=D$V5$?R9>KOXI&H]SY@HR
ME#;=K'3-BH?Y>U?9[&Q,.SUC(:\#&P(E+1JL#.")- MJ[O()SW[\3($%@8B>
MP(#Y#G$O<0!D"L&'S_N4J:R_G;>>]39"T)"TXR^GX^L@Z2^[!N@*1N2=7\](
M92(OJ*2/+T!Y[RCK.V6?V^@(A>_>I.H)2:*_,*)F=Q1^L_4A-1\\0E.Q6U'#
M;H1]'].5W,L;N/#(Q:+&+\>7^)+HT=]8.M;  EV=L'_BR(7O4O5*&FFF])E'
M^HQ22OY![3-]HO9Y96KTIPN&4IQT@R+14H3D<UR[ 6$$LIFRQ[\PANG 7@'?
M@CDU!=TOX[TCQO%U,(ZO/V/*LA?[/AH_0_;P%P^"Q(F,H+XRJMT,'&T^,53
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
M;GYP#<6?*<&MJ8*[M_]\_</IY$:S!:.A9,T'7P.E_F9-"3+RMEZ"N_";1&2
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
M5,X;+R''8#R7Z+'7+ ]4)71:H%OJ-S0-$C26_1WEI#ZWI.VU/9[B&D-@"2Z
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
MTN"5P'VN\ X&R@K@_X649D=8!]VM;O874$L#!!0    ( )B$5U10$.:P 0@
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
MVW[?&<G;KV0WF8; ,J@4*YA*YG$X0[K]\M0^U&KGOO8L50T[+G>[$5DAM"6
M]RNEZO[!"A@^_UW^&U!+ P04    " "8A%=4+<ZQ:_0#  !O#0  &0   'AL
M+W=O<FMS:&5E=',O<VAE970R-RYX;6S-5VUOVS80_BN$-@P)H$4OEE^4V@:2
M=$4#-$#0I-UG2CI97"G2):FXV:_?D9)E)XW59$B'?1')X]W#.]X+3_.-5%]T
M!6#(MYH+O? J8]:G0:#S"FJJ3^0:!.Z44M74X%*M KU60 LG5/,@#L-)4%,F
MO.7<T:[5<BX;PYF :T5T4]=4W9\#EYN%%WE;PD>VJHPE!,OYFJ[@!LRG];7"
M5="C%*P&H9D41$&Y\,ZBT_.QY7<,GQEL]-Z<6$LR*;_8Q66Q\$*K$'#(C46@
M.-S!!7!N@5"-KQVFUQ]I!??G6_1WSG:T):,:+B3_DQ6F6G@SCQ10TH:;CW+S
M'CI[G(*YY-I]R:;C#3V2-]K(NA-&#6HFVI%^Z^[A.0)Q)Q [O=N#G)9OJ:'+
MN9(;HBPWHMF),]5)HW),6*?<&(6[#.7,\AUEBGRFO %R!50W"O#&C29'MS3C
MH(_G@<%3+&^0=XCG+6)\ #&*R944IM+D#U% \1 @0/5Z'>.MCN?Q(.);R$_(
M*/))',;1 -ZHMWGD\$8OLWD .>F1$X><'$"^:4.;R)*4]I [>X@F5!2$PQUP
MC=XU%1/$5+#'02H&BJJ\NB>XMZE87CWFJ/>=4U+."28DH5J#Z? 9S1AGAN%Y
M'7-!;-ACZN2-4DRL;/@R_91'AZVZM:I(COEK08P-C"Z)V=]XVD--M?_JYE(%
MR)CS!L/)_]=VHY#U"P83U!FH/J <"DY"<N0TE8U&BCX^);_],HO#T9O_?#R4
MD]0\H?U6Z(.]<!)U8]R-(W(K#>7D@NK*&9K;"7QM&-ZS ]W*_TK&,W\ZG>P1
M["R*WPQ2.J$/K+0^0EVIR*%C<V<A20$6@JUGA\ F_B09/8/C NL+^A7U)T"5
M^!T?&R(SSE;45GK]0A-&B1]%R6'"_]C]X6NZ/_%GZ8O=WPJ]COO'?K)GT6&.
MUW5_//;3:?H]X5(84* -4=1@O=O0=5]K[@<!D_B9VP,/SKA_<,;##PXV:46#
M]1@K&]8[*7+4SUV#I3PJJDC)?W!UIL(H:S3:RU:"E2RGR-D(F6E0=Z[P,[%N
M;'_0!=B3#<*PSO8Y:1^1S/:$!)M)W0;XLTR0C?H)9OSTXO\@=1]ONDKN\OF<
M<IM"-MDS6#$A[/N%5M^CG;O8Q,G,3](IN=2ZL?R[H(]2/TUVX1Q-_&DT[I?8
M9!O>U9/'2AR-_#1-CK^G1Z&MA[N-L^(O;$Q;$"/WW=.+3'V<["2.4D1(=^L]
M*[$X]/8-U.2'6?I4Y@1[37 -:N5:?8VAT@C3]L,]M?^;.&N;Z!U[^RMR115>
MO<8FID31\&2* :W:]KY=&+EV+74F#3;H;EKA'Q$HRX#[I91FN[ ']/]8RW\
M4$L#!!0    ( )B$5U3.&':2I@0  )4,   9    >&PO=V]R:W-H965T<R]S
M:&5E=#(X+GAM;,U7VW+;-A#]E1W5T[%G*(ND1%U<63.6DK2>L1./[3@/G3Y
MY%)"#1(* $9VO[X+D*+HR%*</O5%Q&7W[-D+%M!X+=6C7B(:>,I$KL];2V-6
M9YV.CI>8,7TJ5YC33BI5Q@Q-U:*C5PI9XI0RT0E]O]_)&,];D[%;NU&3L2R,
MX#G>*-!%EC'U/$4AU^>MH+59N.6+I;$+G<EXQ19XA^;SZD;1K%.C)#S#7'.9
M@\+TO'41G$TC*^\$'CBN=6,,UI.YE(]V<IF<MWQ+" 7&QB(P^GS#&0IA@8C&
MUPJS59NTBLWQ!OV#\YU\F3.-,RF^\,0LSUO#%B28LD*86[G^ RM_',%8"NU^
M85W)^BV("VUD5BD3@XSGY9<]57%XBT)8*82.=VG(L7S'#)N,E5R#LM*$9@?.
M5:=-Y'ANDW)G%.URTC.3B_AKP36W$=)P?,_F O4)M.$B,Q@_CCN&;%C)3ESA
M34N\< ]>$,*US,U2P_L\P>0E0(?(U0S##<-I>!#Q'<:GT T\"/TP.(#7K3WN
M.KSN'KQIH6E%:VBX#G]>T1I<&LST7P=L]&H;/6>CM\?&'9V=I! (,J6ZVYI)
MF$%(&5?PC8G";<<4>)Z@8D[ *);K%)7"!%B>@%GBCP"L" 'DAJ?<I@^8UFAT
MJ;;!$;3%!6&@MOM%AHD'/(]%D?!\02+ ,EGD!NB8PT+*9,V%>"W[A_V^)RZI
M%'32+6IYT/D_9/,-?OR/ P''G!@M9:$)0I^<P:^_#$._^]O>[VR?+[NJ,Z:7
ML&*<Z!F(A=26QA$$_L#K1A%\H9YF5V*VXH8)8,G?U!2H*YH:8>#U_!%\E(9<
MXN02>6JDY9^A KG.4>E:-O ]W_?AO3:<.AI)[N3 D#6+CDSE;>KBQ.W9FFM@
MA-Z(,#93XMH=>/U^#VXQEHN<\IU40=06\[^D9$^8K'1L!TCJ1-K1LO:]*.K!
ME#)501;YO)K$<4E$88RD8CEL('M=+^P-X1/5C:)62^DAMRN"&YFNUPM#N%%T
M"2KS[+"M[=6+!'2]X; /OV^*9;,<19X_Z,-ETW^>&Y8O>",4M?3 &U!4/ZU<
MU5#&!=)E \K>*FV9M@M=J=0:0V\T&E 7JSRD/+UP[SCH>;WAZ,3%A0"I.'+
MI]BV/I=J;1-A':J+P>;<26XQ(B\8$<:L"@_)%:I,%6$(F2_:!E5&]^#<-+2\
M8=_?*LGO?&HFO*$3!-&)=4?9"L8G>G9H+!G*%REZ5;U/.2">5WL8#891<_--
MC 8$&9[LUOF!^R&J[X?HY^X'>Q9V:N.U_GL8]W[3)5_%J_H<NDZY;=/'"0V9
M<O7Q,TWN9[\/U&7*AGB-9">I-[;=Z+/&M!!PQ5/<4=]*?; ]Z\'UK"F+'X5<
M;(7*^MXIY. T@F=DC4YX1'US2 ?N7C&*R$>6;2W>HN"8ME,EL[:2STS0R=_L
MA=WO<!I=L4]P,_=DHVHE$.>L7O*5_B&_T1Y4JKBN)2EM[W]KH(^J9O):H78:
M3T6BN7 /8@VNAY2OQGJU?G-?E$_-K7CY8+]F:L'IU2@P)57_=$"UJ<I'<#DQ
M<N4>GG-I*"9NN*3_#:BL .VGDNZL:F(-U/]$)O\"4$L#!!0    ( )B$5U1A
M=*A?N00  #H.   9    >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;+U7;6_;
M-A#^*X17# Z@Q2+UGCH&[+XMP%($<=IB'QF)MKE(HDM2<;I?OR-MRW05"\':
M[8LHWO%>>?>0'&^$?% KQC1ZJLI:70Y66J\O1B.5KUA%U;E8LQHX"R$KJF$J
MER.UEHP65J@J1\3WXU%%>3V8C"WM1D[&HM$EK]F-1*JI*BJ_S5@I-I<#/-@3
M;OERI0UA-!FOZ9+-F?ZTOI$P&[5:"EZQ6G%1(\D6EX,IOIC%9KU=\)FSC7+^
MD8GD7H@',[DJ+@>^<8B5+-=& X7AD;UA96D4@1M?=SH'K4DCZ/[OM;^WL4,L
M]U2Q-Z+\P@N]NARD U2P!6U*?2LVO[-=/)'1EXM2V2_:;-<FX0#EC=*BV@F#
M!Q6OMR-]VN7!$4C]$P)D)T"LWUM#ULNW5-/)6(H-DF8U:#,_-E0K#<[QVFS*
M7$O@<I#3DP]"%!M>EHC6!;HJ6*WY@M/[DJ&K6M-ZR<WO5"FFE8<^0I$,[PQ7
MG8U'&LP;):-\9VJV-45.F,($78M:KQ1Z5Q>L.%8P K];Y\G>^1GIU?B6Y><H
MP!XB/L$]^H(V&8'5%_RD9/28#%N3H349GC YARXK&E K%BA?@0VF$*^17C&4
M4RF_\7J):"6:6IL5RYV#SR6_W\Z=4?AB_8A*AJA""U%"URHTM"*B49 8=7:!
M?OTE)7[P^C\;KYGQE>>T1',F'WD.7N]Y[TQ#R^=YWX]SM@0 T>VXI]\)#>(S
M6M(ZAT U@DIBU3V3NVK"6;OT%2)!Z,6Q[U"RQ$O2Q"$$ ?'",$'3_&O#%3=X
MHVP1K1L)D2B&UN Q6"K^@I8VKD!.YXRACT(S%)VUJA("FM-.'%'FX2CID#%X
MFX513R#$[P@%?@*^=FW@* 9E88<>QJ$79.3'8VN#@1@3W"$GH9=%73(FD&Q"
MT%6U!@0W1:IVFRD9G$50)7]3B^\=00_[775#2^XZ949,7O>E$KL;'F,O(/Y1
ME?A>DH4.)<J(AW'8 Q)1"Q+1RT%"5&M1VRS#C+L@Q0\@12U(/0<3_9:N>O6!
M<3B-E=T%@R!;># 0,BS@E\H=MOQ_0/'2\8L]G5GQV_212;ALM(S3FWRZDVZ9
MN>V8L#\IMFA*] =<+!3Z((52: 87$.B5O*F:DH+%4^2],DC8G\QD[C,M&SA=
M*B'UOJ2?(;VQ5P+PZI:5EJ)6?*U0<AX?P9'O10EQ*$,,)#]+S]R*C2(OSHY7
M^8&7X>P,VB!_*,42X?-#0@#C O^0A2$Q&IU6PIF7NGQ,O-CWS]"=I 6@ :T@
M1SAS'(7F@):)'(T@D24'C1GV0I>/4P!BL+B%[U-[_0J%20(+DZ/( %G3-';C
M#V( O/1X51!Y./7;53V]&[>]&[^X=Q>-;LS!ZFXH>X+[M6+_KIG[34\M1'0J
MW/LQ/] &+@8_X6Y@JAZQNC!]Y/BX!^+OEX/G;JF&L1?YD<L-#H4:>E% 7%YX
M5,1AX/(.2J!%X!!T>7'7C<P+\$$W7*O@*;30X/K1H1P<3!P7*Y2=#U6?XKX2
M&SGW>>CUI7VU&/2%:]KV:M]2VX?1=/L>."S?OJJNJ5QR.+!+M@!1_SP!_)?;
ME\IVHL7:O@[NA09@L;\K>-PQ:18 ?R'@&-]-C('VN3CY!U!+ P04    " "8
MA%=4\1JY*%P#  !U"   &0   'AL+W=O<FMS:&5E=',O<VAE970S,"YX;6RU
MEE%OVS80@/\*H15# FB12,FRG-H&XC3%!B2 T;0;^DA+E$64(E62JM-_OR-E
M2VH;!VN!O5@\\NZ[._+(\_*@]"=3,V;14R.D606UM>UU%)FB9@TU5ZIE$E8J
MI1MJ0=3[R+2:T=(;-2(B<9Q%#>4R6"_]W%:OEZJS@DNVU<AT34/UUPT3ZK *
M<'":>,?WM743T7K9TCU[9/9#N]4@10.EY V3ABN)-*M6P0V^WJ1.WRO\S=G!
M3,;(9;)3ZI,3_BI70>P"8H(5UA$H?+ZP6R:$ T$8GX_,8'#I#*?C$_VMSQUR
MV5'#;I7XAY>V7@5Y@$I6T4[8=^KP)SOF,W.\0@GC?]&AUTT7 2HZ8U5S-(8(
M&B[[+WTZ[L/$((_/&)"C ?%Q]XY\E&^HI>NE5@>DG3;0W,"GZJTA."[=H3Q:
M#:L<[.QZJ^%\M?V*J"S1W>>.M[#C%EV\ISO!S.4RLN#$J4;%$;CI@>0,$!/T
MH*2M#;J3)2N_!400W1 B.86X(2\2W[#B"B4X1"0F^ 5>,J2<>%[R4RF_ $X'
M<.K!Z1GP(]R8LA,,J0H5JFF5!*YQ4CMUR9YWV6_%RQZVSW+ &5P28YTG6S-4
M*0%WC<L]NBAA2+5!7,**Z@S8F<MK]/MO.8F3U__;]\Y8#C>&E;],^&!8U0ET
M#U?6(*@ UNR8]E5PTH"4/C*7FRL+]Q.C>[<M;AV3D?0*9>%\02;R/,39?)#?
M:RI-J[2E_ID8=Q6C/]"HAA/R#0;C),SC47Z@10VGI;\_&T>!T$YJ:1[&\41,
MPB3/!O$6JJ:SD*AC6'BZVAJ*Z#L:'LU)$L;9;"H2/(J;CHL2RL!XG&#P>-5*
ME(@W4(]?6..KTQ'3D3A/PT6.!S%;A%F>#.+;3DMN.\T\L>)/;MPS\/R',\S"
M>((Z?6=AGN%)QM)8W?5/-!PI1+8'I/GA&'&89?E$(HOT/Q<36< VSQ>CG*5A
M&H^T>W!X]'=3%%W3"5^[)8,^5_"^+LZQ+S# <C*[G,RD\Q#J<9QY_MJ&2$+3
M/<=]A3#)P]DLG<Y@!Q[*Y;DG*YJT@H;IO6]X!EZ(3MJ^*PRS0T^]Z5O)J-XW
MY >J]UP:*)P*3..K^2Q NF]RO6!5ZQO+3EEH4WY8P_\"IIT"K%=*V9/@' S_
M--;_ E!+ P04    " "8A%=4:>+_ M\"   9!P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970S,2YX;6RM56UOFS 0_BL6JZ960@43R$N71&K:39NTJE6[E\\.
M',&KL3/;E/;?[PP)4'7)AVE?L.]\]]QS9^X\KY5^- 6 )<^ED&;A%=9N+X+
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
M%7'[H7N S^B@@?@=SD@*5)1S 7#\R2'?^I,^N8->4T,W(>G[8<MWR]GG D\
MY.;Z_/:^$N#U7;>=XO4]B_I22I%"+X/6L:WQ/@,WI;R-NVO0#]G+GEG!\. #
MB1 WB1!W)T)UF,4\H"G4!J@.7H:A>;9[R]\)AT?P8[6D"3OMP1E;,?G,>N^&
M_$>]+R!'19ZE$(JTKK!KCJ7*4@X;-$SI+9:J(;RE,YFD?\*9%=B_G%\_7D[6
M-GB0^!!>S(?J 7!>/PJK!Q ^I&+U$)+,):/8=":M4^^0Y+PLVO;WU?@9)X'(
M[UA=/V[%VUE(5A[!?L,4CFM>$5+&K(.NM+8*P:\X#+]7\?L5?W>_[>*\V%C)
M\-J#O]I[8&P^[3'-:)902#@,'BS T+,(K(FX!-N+)5"Y44I96E%MP.?9,X,]
M!_8&RSF55VH?!145(+6KY@;6_06L_'-S2X/'73@555<9S6AS$32I[C_:Z=4M
M4I41"M2= 2O&I4=D=3-3$5HLS6W(5&@M"O.Y8!0R!R? _YF ;4A-H(#F>NSL
M'U!+ P04    " "8A%=4=C>&X#H$  "L#   &0   'AL+W=O<FMS:&5E=',O
M<VAE970S,RYX;6RU5VUOVS80_BN$5PP-H$02]6(G<0PTR8H-2%&CR3KL(RV=
M+:*4Z)+4G.S7[TC)BOP2U1BV+Y;(NWONCGSN=)YNI/JF"P!#GDM1Z9M18<SZ
MRO=U5D#)](5<0X62I50E,[A4*U^O%;#<&97"IT&0^B7CU6@V=7MS-9O*V@A>
MP5P179<E4R^W(.3F9A2.MAM?^*HP=L.?3==L!8]@?E_/%:[\#B7G)52:RXHH
M6-Z,/H17MZG5=PI?.6QT[YW83!92?K.+W_*;46 # @&9L0@,'W_!'0AA@3",
M[RWFJ'-I#?OO6_2/+G?,9<$TW$GQ!\]-<3.:C$@.2U8+\T5N?H4VG\3B95)H
M]TLVC6Z2C$A6:R/+UA@C*'G5/-ES>PX]@TGPA@%M#:B+NW'DHKQGALVF2FZ(
MLMJ(9E]<JLX:@^.5O91'HU#*T<[,'@!3TN3]$UL(T&=3WR"H%?E9"W#; - W
M $)*/LG*%)K\4N60[P+X&$T7$MV&=$L'$>\ANR!1Z!$:T'  +^I2C!Q>-)CB
M %#< <4.*'X#Z!$K(J\%$+DD6!6*&5ZMB+#PA&D-1A-6Y41PMN""&[[OM$E^
MV,='7K$J@Q9564Z=R^5YW7.A@/ J$S6>-KZ0GW^:4!I<SY4-R;RX$.![S==8
M.L8C%1C/J8373I352J&@B516JW,#JB3+';>]#';=;;@I7EW>M5!8&[5JM/%D
M7D%S6)B^Z];L84=A-T(%>@VN4,6+9[,S!9 [66DI>,X,AG#+A(OTT5+^@CRA
M?"D%]A9[%\:RN&TP_&^,QYJ?=E4[9SKL%1%:GU@X3EO6&N'TV97+,8BN__43
MR0_E E17 &]* O)Y+[%C;'E'0AI[XR3M<-Z12]R@XP/SWF&<GL=G/"K5D:I_
MGNCYT@N2H.<X3+UDDI)7 NQ?3=]^:Q8&8V\<A >>)X&7C%/R) T3@T#V"%(\
M@K!_!&,O3.E 3TBZGI"<W!/VZF _D&/-8!C<DGL7="A/YC0."60K^#]@[)_
M%($JM\Y[3JPXI&^;80BT=_ T0NY=VMWH4#7TPIA:67P@"R?>.)I867(H&WMI
M8Y<>RF(OC4+;)G!D62+I#C22!*D0MCQRWPHR9R^V>>I#M"3T@CA"-:W;Q.?8
MLBSUOS)1 [GG.I,U+O<MWV,5TDMZ1G;U\<)>R[!Q_G"D!CH*#S V[1B;GLQ8
M7:_7 FRNF#NOFAFO&;>$ZWM&-D0[2MX?^#D!>X_.FFR8_C^[J^.PFU-VZZ1'
MUK"_",@=TP59,YYC3(JPTE[NX;>BQ.AKY9+]495B"5"/1CLU$7@QDNJ4=BX7
M!@?MQC$\9P6K5N B.^8HQKJ@_:Y'QUX4I\<XY/<FR!+4RLW)FC@N-\-DM]N-
MXA^:"?15O9GC/S&UXI7&B)9H&ER,L<>I9C9N%D:NW3RZD :G6_=:X-\)4%8!
MY4LIS79A'71_4&;_ %!+ P04    " "8A%=4=ISB9-@'   4'0  &0   'AL
M+W=O<FMS:&5E=',O<VAE970S-"YX;6S-66USV[@1_BL<M;F19QB+!-]SMF?L
M^-)FYEXRL7N=?H1(2.*$)'0 &,7]]=T%*0*4*45I+FF_V ((+/8-S[-+7NVX
M^" WC"GG4UTU\GJV46K[:K&0^8;55%[R+6O@R8J+FBH8BO5";@6CA=Y45POB
M>?&BIF4SN[G2<^_$S15O554V[)UP9%O75#S=L8KOKF?^;#_QOEQO%$XL;JZV
M=,T>F/K']IV T6*04I0U:V3)&T>PU?7LUG]UE^)ZO>#WDNVD]=M!2Y:<?\#!
MV^)ZYJ%"K&*Y0@D4_GUDKUE5H2!0XX]>YFPX$C?:O_?2WVC;P98EE>PUK_Y9
M%FIS/4MG3L%6M*W4>[[[.^OMB5!>SBNI_SJ[?JTW<_)6*E[WFT&#NFRZ__13
M[X=S-I!^ ]%Z=P=I+>^IHC=7@N\<@:M!&O[0INK=H%S98% >E("G)>Q3-V^;
MG-?,>:2?F'3FCW19,7EQM5 @&A<L\E[,72>&'!'C$^<7WJB-='YJ"E:,!2Q
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
M@NEG4J"ODN@%$. :%WY11)G<$+&T^5AFE*M]R3ALZ@LJG(D,>Y_Q.=$FIQ4
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
MTB799NJ![W^G34+3TE_",UG]!?L&ZXU LI6*YXVQCB!G1?U+GII"'!C 8,
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
MM(::Z/LR2382%.F"(LZ@VO[S!GONB'(0/NEE_";PDR#M59 ,+$02 T^<UG#
M(H[C#*<C$7?,B0-W&9GDHD#%5D(T:+?F^;K=8EW1A&R9#][R'!H&K=&"V9%H
MS<H"04/A)0A5FY+9.0CR9H;;P?RX(<6HLL..@\!QQ^#83>%/3+-:[^=Q5W_&
M?2+&01;U-UW8WW0DQ/X(7^..L+&;L3N@&_HZBC+J[^70[X,<$"-D%&-'T=C-
MT<V\>XU@U=BO*]B_Z*]%R5?4(+]&<Z9RR3>'!?!(7^%K2*.O3%;#.\7M[SM#
M^G7#<V@6K[ EGX59>6(KFV\ ,X3;F7S3^-'&CW%L1IT"!G/8QH$/D\2K<S%U
MQ(_=S/_4$>9;EU?@R'AY/QBDV^@% #N>QVZB?^ UK[:5RU9'NCC[I4,UZ5B2
MN%GRY])XQF@8G4LCZ;B-G.&V/:K#A 3MWN [ \]M\GR52<=2Q,U2#_3E3)5)
MU__)K_UT(EWG)><Z[T]5V6TT/I_&KN,2=\?]J2J[36;C\+RCXPCH7"M[K /C
MD!G%]R<3[=/VZ.B3/3#Q.O']N=,#E2M>*U2R):CZ'Q( )?='.?L;+3;V<&,A
M-+1)>[EFM&#2",#[I1#Z<&,<M =JLW\!4$L#!!0    ( )B$5U3>,7ST'0<
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
MI%MUM=OV7ISNA0.38!5P:IM-[]N?;0@A/-U*M_<FP3#S]V\&CSTL3UQ\DRF
M0C_RK)"K6:K4\8/CR#B%G,H;?H1"/]ESD5.EA^+@R*, FEBG/'.PZQ(GIZR8
MK9?VWH-8+WFI,E; @T"RS',J_MY QD^KF3<[WWADAU29&\YZ>:0'> +UY?@@
M],AI5!*60R$9+Y" _6IVZWW8>J%QL!9?&9QDZQJ94':<?S.#WY+5S#5$D$&L
MC 35?\^PA2PS2IKC>RTZ:^8TCNWKL_K/-G@=S(Y*V/+L#Y:H=#6+9BB!/2TS
M]<A/OT(=4&#T8IY)^XM.M:T[0W$I%<]K9TV0LZ+ZIS_J1+0</#+B@&L'W'68
MCSCXM8-O ZW(;%AW5-'U4O 3$L9:JYD+FQOKK:-AA7F-3TKHITS[J?4C/$-1
M MH+GJ,M+Y30B94:0J5H:Z<'(='[YA&ZE1*T 2T2]#NC.Y8QQ4"BMW>@*,OD
M.VW[Y>D.O7WS#KU!K$"?4UY*;2V7CM*\9E8GKMDV%1L>8?,PNM?3IA)]+!)(
MK@4<'6@3+3Y'N\&3BG<0WR#?^PEA%WL#0-N7N[L3.'Z3?-_J^2-ZG:1.*,X;
MQ;E5G(\H;FA&BQ@056@'!U84K#@@OD='$(PG0Z^@T@NLGJGYY[47$8R7SG,[
M+WTK'/JD,;IB#1K68))UF]+B "C1JT]Q7<_?2R:9J6V)')0P>>229H/+IM(E
M;6;7#TB'N6^U"-S%,#-IF,E+F 5D5$%BN&,!"5.(9GI#-*D?XB4]DO=!!W;
M)!QA#1O6<)+UDTI!H-@22U.*>CRQ$,)^NG#8H>S;D'DPL@RB!C-ZZ9(%O:E,
M+M:H-S]>+%RW0]FWNE[25YB+!G/QLEIM[7H3!>NYEPW8?>62K06OTH )]KMO
M:\#.(V3A1<.9\%IGAO<_56XMW$;R28#]+OF V2**@A%P? ''KUD2M5H;8SXG
MN+O>!LR\Q=R?C]!>3@?/?[7*J*6N,N:&?M1C[=MUULXU[.7@\:9/GG,CT=H:
M>:ES?2Z;;*QL:OZ!$\8-2:NVK[DNAXSW+Z<,S>*R0BIU%R'0&?27DB4VO7H9
M?-SO=5NIZT_WQ8 ^\R.+$7$)^O,>\AV(OZ8*_7)T>.15=Y#+/N]-;_3_+?7;
M6OVJ!2!!U$N]T^HR=5=XL,VWU-.4A:I:L.9NT^#?VK:V<W]C&G_;O5YDJJ^&
M>RKT#BA1!GLMZ=Z$&DI4C7@U4/QH>]D=5[HUM9>I_G@!80ST\SWGZCPP$S2?
M0^M_ %!+ P04    " "8A%=4$==VRRL#  !*"P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970T-BYX;6S-5MMJ&S$0_95A:2&!)'MQG#C!-N32TCZ$&KN7A]('
M>7?L%=5*KB1? OWXCK3VVH58;DL# 6-+6LTY9RX[GNY2Z>^F1+2PJH0TO:BT
M=G8=QR8OL6+F3,U0TI.)TA6SM-73V,PTLL(;52+.DN0BKAB74;_KSP:ZWU5S
M*[C$@08SKRJF'V]1J&4O2J/-P9!/2^L.XGYWQJ8X0OMI-M"TBQN4@E<H#5<2
M-$YZT4UZ?9NVG8&_\9GCTNRLP;DR5NJ[V[PO>E'B%*' W#H(1C\+O$,A'!+I
M^+$&C1I.9[B[WJ"_]<Z3,V-F\$Z)+[RP92_J1%#@A,V%':KE.UP[Y 7F2AC_
M#<OUW22"?&ZLJM;&I*#BLOYEJW4@=@RR=(]!MC;(O.Z:R*N\9Y;UNUHM0;O;
MA.86WE5O3>*X=%D964U/.=G9_A 7*.<($ZTJN%/2:HJ3(1&VA#M/C]K *0S1
MI9C+*0Q0^V*0.<*'L>!3YL)KX.@>+>/"',,KX!(>N!#NO!M;DNG(XGPMZ;:6
ME.V1E&;P0$)* V]D@<7O #'YUSB9;9R\S8*(]YB?02L]@2S)TD^C>SAZ=1R
M;36Q:WG8UM[8'8A)@..\X3CW'.=[.#Z6"!9U!6H"EM8:)2[96" 8U M.?$Z#
M1>FYV50CTCM#&3RB'#PBT^;XJ0R$25-O&5#?;M2W@T #5TT\9P+>K&98<%+V
ME)HPB-5S#&BY:+1<!&'6E7YRL)1/O-C<8@$?>>7N4>Q'],A,6%Y?&%FF+= +
MA_#U9L7-MVM76MEIDM(GH/6RT7KY;)75:3@Z!^*QX9CM<*A]''6F:LBVAW0-
M?]'/6FG2C1=/"+EJA%P%A331MDVT_T)1&)MZ2>5[22!@:;+ME<G+*"'X2?U3
M\FI>A73O]/CTV<HIS;8LV9_ED;*7TYM.?^K.;?TO=7: JI.<)<GKD.IM#T];
M+R>G;'4HI]O_A?3\^7*Z[=]IN/?^UYR&J3KM?3F-=\8;&D>F?H@SD*NYM/6D
MTYPV@^)-/1YMK]=3Y@/34T[#BL )F29GEZ1)UX-;O;%JYH>EL;(T^_AE2<,N
M:G>!GD^4LIN-(VC&Y_XO4$L#!!0    ( )B$5U3TLNR1>08  .@>   9
M>&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;-59VV[;.!#]%<+H BW0QB(I^5(D
M 9*X10TT:3;IY6&Q#[1-V]Q*HDM220/LQ^]05DW9HNBDZS[T)9'DX?!H+F=&
MP^-[J;[J)><&?<_27)]TEL:L7G>[>KKD&=-'<L5S^&4N5<8,W*I%5Z\49[-R
M499V213UNAD3>>?TN'QVK4Z/96%2D?-KA72194P]G/-4WI]T<.?'@QNQ6!K[
MH'MZO&(+?LO-I]6U@KON1LM,9#S70N9(\?E)YPR_'B6175!*?!;\7M>ND7V5
MB91?[<UX=M*)+"*>\JFQ*AC\N^,7/$VM)L#QK5+:V>QI%]:O?VA_6[X\O,R$
M:7XATR]B9I8GG4$'S?B<%:FYD??O>/5"B=4WE:DN_Z+[2C;JH&FAC<RJQ8 @
M$_GZ/_M>&:*V@"0M"TBU@.PNP"T+:+6 /G9!7"V(2\NL7Z6TPX@9=GJLY#U2
M5AJTV8O2F.5J>'V16[_?&@6_"EAG3M\RH=!GEA8<77*F"\7!J4:CYR-NF$CU
M"_0,B1Q]7,I"LWRFC[L&=K5KN]-JA_/U#J1E!TS0I<S-4J,W^8S/MA5T >X&
M,_F!^9P$-8[X] A1_!*1B.!/MR/T_-D+87CFP7;Q>$U1I<FC9?1H+7CHU;+U
MFG3C&EJJI4]S34!SO-$<EYKC%LU713;A"LDYXMDJE0^<:S25=USQ&2K 20JE
M8L[![[ IRZ<<K60JI@*D_D4MACY?[]@K=[1D<W<Z2(Z[=QZ4R09E$D1Y(;,)
M/)JA.0,(=Z4A '(+-!^FM?ZDAJE':!3Y8?4VL'IA6$PO@2:5XJ6E2ER^S7L-
M@_1ZM;W7X=EK($SB-H#]#<!^,&YN^%3F4Y$*5C(KF,PL.1A1*&=$D# B7T \
M(<Y4_@HJ I*35"S*-1I6,(,*S9$6BUS,Q92!9)'+B>;JCDU2ZX%587GB/;_C
M*:*A@!]L@ ^"EAUG*P!I@QQ-ETPM_$X=-$RV:]1!P_([$J.0CBWHPPWT81#Z
MI<A%5F0!(^#(,7)TX+S'-;;'09Q?RCH(.<4@VZ&N0R!H4P8$6PG#4B^]AU7B
MZ"B*_@BA(PX="5N1?=]G14>>^-#LB1U]XC!__I05PRIQ[R@)6]'1)M['F\'<
M#NWA.!#W?B^.P8X=<3]HGG.6EH4#-I_PA<ASP&CA/@!(K^/Z#;(@R; _W"&=
M2JS..F00#_M^7L&.$_$>4M2ZL'C]G5>3ZO!P&#>P><1Z?=Q2G[$C/1QF/?@J
M,*DOKRITP\:VKRC VT7G$<,1QK$?'G%$2J(@O+/9/]! K_M9(VO1Z0-;Z:JC
MZ _(;FGQ2 TQ'K8@=;1,PAQ:BTGH*FPTKK@2<N8%BAL0:%RW5H6T*>8)VY%/
MK#ULB:-R$J9R( AHD6QJP5>9L(WC1]E@QFW=CMK)H:F=.&HG81XNNSOXT $J
MAPO^K1 0,6T!3II-;S+H]WN[KO"(Q8-AK\7&CNA)F.C?;W7"KZ:/;$PKK=N=
M:4QW03>EDIBTM$G$%0ZRIWM^2G&J\#8[:6_ -\6V WX;L:L7)%POFI'\9R%M
M\;]DZBLWZ%H)8&<TSM%9.<.HGFLTEPJ-9_"F4-E2=*8U=[4,AVH9<<6!# Z=
M"8[<29C<GY8)30[W9H)'K#T3J&-Z&F;ZIH]N:SW%!^A-%/K@^HKQ5E]!@A_K
MCL,I/K OJ&-3&F;3G\ST2NN>3/=(M6<ZK4TOZ/_PR:=ZGS=^?)]''9/3^-#^
M<,Q+#]AB5[YH\JF/Q3QB 1:CCG=IF'>ORC'M+_&(8U+ZFPTFJ"-:>HC1!-T[
M>;C8+S*BCYY.4$?F-$SFX]QPQ>$C]889CF[OV2HT1G2\&Q]Z5!$[/HW#/?$5
MU-94:HT@5(#EH/K8ZNH=/39[V*0Q:?,(M8X"8T?,<9B8FW:%K+J2!HVX#5!6
M#@DT>L=G"YMWXUP;55@;O41O(-1E)J;ECQS]=<GM4/;OD.T<]\8''QW79L=[
MAL?29B)T-"R316Z\#HD;$3R(HE9K.]J-P[3KM7;+E\:O](-CW3@\)OD)/S@V
MC<-]Z<88RAI#6V, LTZ 7LV#[R0D;@XH8M+B$<>+\1Y>?)Q'GM2-_4K/.<*,
MAP?V7.)8,PEWJT_U7*4N"7FN6SL"S#@4*'N4:D]U($77)VN;IYOCVK/RD'+G
M^3E^/5H?NCHUZS-@^*X!%VB4\CFHC([Z $BMCU77-T:NRH/&B31&9N7EDC/@
M;BL O\\E?#=5-W:#S>'VZ7]02P,$%     @ F(175+!K>2_)!   F1$  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#@N>&ULS9C;;N,V$(9?A3#V8A>H(Y$Z
M.G ,Y-1V@;8;)+O=:T:B;3:2Z"6I..G3=R@IDEV)C'O77,0Z<&9^SI ?22WW
M0CZI+6,:O91%I2YF6ZUWYYZGLBTKJ3H3.U;!F[60)=5P*S>>VDE&\\:H+#SB
M^[%74E[-5LOFV9U<+46M"UZQ.XE47994OEZQ0NPO9GCV]N">;[;://!6RQW=
ML >FO^WN)-QYO9><EZQ27%1(LO7%[!*?WY+8&#0M_N1LKPZND>G*HQ!/YN9S
M?C'SC2)6L$P;%Q1^GMDU*PKC"73\Z)S.^IC&\/#ZS?O/3>>A,X]4L6M1?.>Y
MWE[,TAG*V9K6A;X7^U]9UZ'(^,M$H9K_:-^V3>(9RFJE1=D9@X*25^TO?>D2
M<6" 0XL!Z0S(J09!9Q"<:A!V!N&I!E%GT'3=:_O>).Z&:KI:2K%'TK0&;^:B
MR7YC#?GBE1DH#UK"6PYV>G69_:BYXJ9H"GV\89KR0GU"<_3MX09]_/ )?4"\
M0E^WHE:TRM72TQ#4F'I9%^"J#4!L >K-&?+Q3XCX!$^87[O-;UAVA@*[^<WI
MYOZ$^>W)YGAQ;.Y!HOMLDS[;I/$76/S=LTQL*OXWRQ$M15UIA<0:\9Q5FJ\Y
M?2P8HDHQ>$Q-7:1I5^6H@%>\@"(Q9=[7)<O/'6J"7DW0J DM:GX1(M_SHIBJ
M2FL9-98&-L^K:$$P#I?>\V'VQ\W". P6Y+C9[;A9$) P3/IF1_K#7G_HU']9
M:I8].1(1]8XB9UFN8?!#$21MV*4EK=2:2>G.<MP[CYTJKZG:HAWE4$J-LD(H
M7FVFIE$\RA'VDR"*IG.4]-$39_3O@&D(B#*ZXYH6B.9_ 52 ]'I*0^LK/M"0
MA/YB6D':*TB="OX0&H8MAV$+HUD+9!8W)I'85TQ.\B0=B< ^_$VK6/0J%DX5
MMTIS6%9 PIIRB9YI43,S]S(!4Z_:0#X0H[*:PUH*Q7HU"9H4MQB+(PN;..P/
M%/:=\KX*4YS,-@XGL>N/I01)'(<6+0<K OX?0 H/S,3D_0ED(F3F@D%(J)ZM
M/IVOXZQ$D2TI RJQFY57P,FNHW7UV-UD69L>R3(&HB SDY*"D:00Z)=:) WT
MPV[\?=%;F$=9#0,$1F];DLGXX2A^$!)B"3\P$T?.\'<2=JM2OS8Y,579V:C2
M.3H2D*:Q1<# 5>P&JV/YNNI,#T-&D9_88@XTQ6Z<?CZ<!;S2M-KP84),*ADS
M-4H2*S$&JF(W5K_L&DX V@L&&V4DS8YX+M;S6G5R)M6,X9HN%I9U& ]PQ6ZZ
M7K[-!$"G=1J,T3G'89A:EA<RL).XV6FF)N1!F8TJ>\F84BW8E2&4&9L]^@WA
M3<LI>62,TSF.\,(F;\ IP6Y\=1,4)-2RQ2/(*T2UF6LF2SC5/$Z6JG-[+"B-
M+0.''&Q!W\%IIT?\:P =\'M2SABL<XRQ97M"!K 2-UAAZ$BS,V O</95K"V9
M.$+;>\K&?)W'J75<#7PE;K[^UI?HOZ9J#-QYDMHR-0"7N(';\GX8..^I&%,7
M5*06[I,!N\2-W7:K<N(.8%+8Q$YW:N/B'9QJS4>+WZG<<#BE%FP-AOY9 AYD
M^QV@O=%BUQQT'X6&8W-SN644]E.F ;Q?"]B*=C?F[-Q_C5G] U!+ P04
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
M4KR30MUE"B=GE_'/'2N9+HL2? 3_R)0*<'3Q_8)*PK+R@[I]?[< []]] .\
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
M907P_5)B&C4/UD$[@4[_!U!+ P04    " "8A%=4%'@0D"4%   7&0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970U,RYX;6RUF5EOVS@0Q[\*8?2A!9I()'46
MCH$<[6Z )@AR=+&/C$7;1"31*U)QLM@/O]014;8D^BC\8DLR9_[#&?)'BAZO
M>/8B%I1*\);$J3@;+:1<?K,L,5W0A(A3OJ2I^F7&LX1(=9O-+;',*(E*HR2V
MD&U[5D)8.IJ,RV=WV63,<QFSE-YE0.1)0K+W"QKSU=D(CCX>W+/Y0A8/K,EX
M2>;T@<JGY5VF[JS&2\02F@K&4Y#1V=GH''Z[='!A4+;XQ>A*M*Y!T95GSE^*
MF^OH;&07$=&83F7A@JBO5WI)X[CPI.+XIW8Z:C0+P_;UA_<?9>=59YZ)H)<\
M_HM%<G$V"D8@HC.2Q_*>K_ZD=8?<PM^4QZ+\!*NZK3T"TUQ(GM3&*H*$I=4W
M>:L3T3) [H !J@W0A@%T!@QP;5!FSJHB*[MU1229C#.^ EG16GDK+LK<E-:J
M-RPMRO@@,_4K4W9R\@?GT8K%,2!I!*XCFDHV8^0YIN ZE22=L^+R7 @JQ5=P
MJX;5R4ZM/E]125@LOJCV3P]7X/.G+^ 38"EX7/!<*"TQMJ0*OPC"FM:A7E2A
MHH%0(0(W/)4+ ;ZG$8W6'5BJWTWGT4?G+Y#1XQ6=G@(,OP)D(]@3T.7NYK8A
M'-S4 I?^\("_'1)K4'$:%:=4<88JGG$AP(6:6. 7B7/:5XC*@UMZ*$#P.G%\
MW_/\L?7:3D^W&?:\,-#-U@)TFP!=8X#GTVF>Y#&1- +G"<\D^Y<44[XOT,J3
MUXK@!/HH"+R-2/O:81<&=G^H7A.J9ZS8CUSF&06D%26@;PJQ@@(^ ZQ=4*8+
M2LJ"&FKI-_J^,55JX*&^M/B=[CJ>:[O]G0T:L6";&.X3"SIBV'$QZA<+&[%P
MFYC3)Q9VQ1!V<+\8M#4%[6UR;B^1[*Z>#5UO0*]%7;A-S^O5@QT]%&(XD$R(
MM!XRZCTNJ%KD9Y)FO:JHHPHQ#/%06C70(#;+<DGB7D7<18?M^ $<4-1P@V:Z
M799+)LW /8W+^2@6;&F::E!C";I'Q#/43(&>L0O?A61)2;\G06=Y#'ZJC8XH
M%L^_*<GZ%TZS1Q^\%Y; !TFU@'H@(N_&K&@"03."=EE.:A=KU<:VZZ,-2L,N
MMY#K>N'0\-?D@F9T[;.DU*[<];7"ML-@,]HN^$Z@C4,8#H2KV0?-\.L?Q. _
M<,-2EN2):>NCD8?L(PYGI%&'S*@[8#AO\;C_<$8:E,@,R@LR?8GYW.1+TP\=
M<S^'-/.0F7F'9-CL$989!K!*\ [YU1!%YLW=+KBH7;CKB[QM;\P_U-W4P3"P
M![9T2/,7F6FY#RQJ5VNP4&_0(=R,U>MA!?(&@]7X16;\UN-U-S9H7J+@F"-7
M@PZ907?(R#5[W'?D8LU+;-XB/F8DHN"6)-3D3F,1PR.F&&N@83/0#DCQ%H\P
MW)N_N/4*;-XQ[L('W-T\0NCXH;LQZ>IV[4D70B<<> W"FK?83,=] (&[[\@G
M"'GAYJMT7SL8>-[ AAAKX&(S</6PW8D16&,2F]]]?W, :\)A,^$.&<!FCX<,
M8(U.;-YJ#NS=;GDZY<F22I6@>49IHI(GRD.WLD"IJL]N&SRLX8K#8QXG:3 Z
M9C >4* M'BN(FX+3F'7,>\7?+ =YVU(.1X/80<<LAR:H8R;H(>4P>T1N-5_Z
MPK-:1\\JS?/R1%Z *<]369U"-T^;4__S\JS;TLVKOPQN2#9GJ0 QG2E3^]17
M8,NJ4_CJ1O)E>9#]S*6J:7FYH*I:6=% _3[C7'[<% +-?R&3_P%02P,$%
M  @ F(175&YKPJX5 P  +@D  !D   !X;"]W;W)K<VAE971S+W-H965T-30N
M>&ULM59;;]HP&/TK5M1)K=21*P$J0.*R;CQTJMIU?9CV8)(/8M6QF6V@W:^?
M[80TY9)5D_8"MO.=XW,^7S[WMUP\R0Q H>><,CEP,J565ZXKDPQR+%M\!4Q_
M67"18Z6[8NG*E0"<6E!.W<#S8C?'A#G#OAV[%<,^7RM*&-P*)-=YCL7+&"C?
M#AS?V0W<D66FS( [[*_P$NY!/:QNA>ZY%4M*<F"2<(8$+ ;.R+^:^IX!V(CO
M!+:RUD;&RISS)].9I0/',XJ 0J(,!=9_&Y@ I89)Z_A5DCK5G 98;^_8KZUY
M;6:.)4PX?22IR@9.UT$I+/":JCN^_0*EH;;A2SB5]A=MRUC/0<E:*IZ78*T@
M)ZSXQ\]E(FH /SX!"$I L ^(3@#"$A"^%Q"5@,AFIK!B\S#%"@_[@F^1,-&:
MS31L,BU:VR?,K/N]$OHKT3@U_,QYNB64(LQ2-$N!*;(@>$X!S9C";$E,<R0E
M*'F)ONI]>#X%A0F5%^@C>KB?HO.S"W2&"$/?,KZ6FD7V7:6%&7HW*46,"Q'!
M"1%^@&XX4YE$GU@*Z5L"5SNJ; 4[6^.@D7$*20N%_B4*O, _(FCR?KAW!#Y]
M-]SO-;@)JT4*+5]X@L_F'\WR%29"GSF%)AD62Y#HQV@NE=!GYV?#+%$U2V1G
MB4[,4N-/"OYC*UEPM"V'N50V0YV@33VU?XV8-D6\D=ZNI+<;I8]R+A3YC>U5
MPA>(U#<R>=W(V&[D8[8*_K@F*?+:7GO/VF%4&,2][IZ]PZB@XW6#XQ;CRF+<
M:'%W4(^)CP_RV>X%OA_MJ3\,B^(H[ 5[\@_#PC"(HLYQ_9U*?Z=1_R.F3R :
MMFFW(NK^Q\/0JV;I-<J]UNQH@^E:$^O+#9X3D-)LK00+\4+8LOB(SK%$&*U
M)%K*Q;'%:9XG#%J>]Z%!L.^]WN3>/^^0$EI?U%[<]?:/G5LK)#GHK)J"+%'"
MUTP5EV\U6A7]D2UU>^-C\QBP!>J5IGA)W.C%(DPB"@M-Z;4Z6I,HBG/147QE
MR]6<*UW\;#/3#QH0)D!_7W"N=ATS0?5$&OX!4$L#!!0    ( )B$5U3^\DH7
M;@4  /(>   9    >&PO=V]R:W-H965T<R]S:&5E=#4U+GAM;*V9:V^C.!2&
M_XH5S8<9:=K@&Y<JC=0V'>U*6ZF:SNQ^IHF36 ,X8YNFE?;'K[D4DX08NN)+
M"^2<U\<OYL'&L[V0O]26,0U>TR13UY.MUKNKZ50MMRR-U:78L<S\LA8RC;4Y
ME9NIVDD6K\JD-)DBS_.G:<RSR7Q67GN4\YG(=<(S]BB!RM,TEF^W+!'[ZPF<
MO%_XSC=;75R8SF>[>,.>F/ZY>Y3F;-JHK'C*,L5%!B1;7T]NX-6"AD5"&?$W
M9WO5.@9%5YZ%^%6<_+FZGGA%12QA2UU(Q.;?"[MC25(HF3I^UZ*3ILTBL7W\
MKOZM[+SIS'.LV)U(_N$KO;V>A!.P8NLX3_1WL?^#U1VBA=Y2)*K\"_95K*D;
M+'.E15HGFPI2GE7_X]?:B%8"],\DH#H!'2>0,PFX3L!#$TB=0$IGJJZ4/BQB
M'<]G4NR!+**-6G%0FEEFF^[SK+CO3UJ:7[G)T_-':8:0U&\@SE;@_G?.=^:F
M:O!YP73,$_4%7("?3POP^=,7\ GP#/S8BER96#6;:M-\(3)=UDW=5DVA,TU!
M!!Y$IK<*W&<KMCH4F)JZF^+1>_&WR*FX8,M+@.%7@#P$.PJZ&Y[N=:0O!J?#
MR-$;W-P*7.KA(;>"O=\*AS!IA$DI3#XD_!5LI%"=][&2HZ5< 8Z7.8HP#DPG
M7]KN=H3YA'AA$W90+6VJI<YJ_V)*7=PLEWF:)[%F*_,4&Z(M>5QPHJO:2LYO
ME7$!?1(B>E1N5QP)S+WOKM=OZO7_E[L9TUW5^B=50!122HZ*[0B#IE:_N]:@
MJ35PUKIH60G8JWEY*-959'#2.@J)YQW5V!$51,=1B^!TE!#:BCKH2-AT)'0/
M$F.VX\F(&IEHW$<.>I:KWK@/7:W7MM,/(G3D>4=4 /V@VTW8>@M 9[4_9)RI
MG9"Z'AI#K$!6'(WLLD4FQ".[C$^&(\2HPV?<\0#B\!PLH&4Q=,/XG-/@7_#
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
ML# &^ON&<W68F'.[NZ<M_@%02P,$%     @ F(175'96 4Y4 P  C0L  !D
M  !X;"]W;W)K<VAE971S+W-H965T-3<N>&ULK59A;YLP$/TK%MJ'5FH+A@!I
ME41:6U6;M*U5TVZ?'7))K!J;V29I]^MG$TK2X+!HRI?$AGOOWCWP<8.5D"]J
M :#1:\ZX&GH+K8LKWU?9 G*B+D0!W-R9"9D3;;9R[JM" IE6H)SY81 D?DXH
M]T:#ZMJ#' U$J1GE\""1*O.<R+=K8&(U]+#W?N&1SA?:7O!'@X+,80SZN7B0
M9N<W+%.: U=4<"1A-O0^XZL;G%I %?&3PDIMK9$M92+$B]U\G0Z]P"H"!IFV
M%,3\+>$&&+-,1L?OFM1K<EK@]OJ=_:XJWA0S(0IN!/M%IWHQ]/H>FL*,E$P_
MBM47J N*+5\FF*I^T6H=&X<>RDJE15Z#C8*<\O4_>:V-V +@WAY 6 /"0P%1
M#8BJ0M?*JK)NB2:C@10K)&VT8;.+RIL*;:JAW#[&L9;F+C4X/;J%B4;W$T;G
MQ-JJT,DM:$*9.D7GZ'E\BTX^G:)/B'+TM!"E(GRJ!KXVB2W<S^HDU^LDX=XD
MV06*\!D*@Q [X#>'PX./<-^4V]0<-C6'%5]T8,T=E%%#&564O3V4=Y03G@%B
M8%XIQ"B94$8U!>/G& #]$!H0#DY=UJV)XXK8'KKE*$R2@;]TJ.DU:GJ=:IZ$
M)@P5DO*,%F9%<E%R[4J^YDFVDD?]?FA=7FX_GUY;8Y0$0>"6&3<RXTZ9WT"I
M\Y(;=5+3/S UQ\\\&*I467F9":6=+UO<$GV.+W<E.X+")'4+3AK!R0&^6I5G
MB)L6*V;H/^0G+L^#:+> =E@8Q6D4N4M(FQ+2?WN>E5("UZBPR@5WB4S;V=-^
MWYV[W^3N'V ?$WQ^KD'F[^FMC8VG+BU]AV%QV MW#&N'=1EVV8B^[!3]"$O!
MEI3/429A2C6:D<R>[;>.KH&#3?<-CM6*\%9+QT<Z_C71!\_, !#LOHN.N#38
M>_[QIA'CL%NI?0V8(+RK[DT/QM'1S-RT4GRL7HK;S10[S73$1?%^-S?M%'?W
M4_N544@+9*<[D$BL.,A.%S:-#R='LW;3BG!W+[HOM=)FHK"':T*8[9I.7]/6
MUZ>77L:]75O;81%NN^IOS4IV4/U.Y)R:N8?!S.""B]00R/7LM]YH453CTT1H
M,XQ5RX69ET': '-_)HSM]<9.9,T$/OH+4$L#!!0    ( )B$5U1H"4'WQP,
M . ,   9    >&PO=V]R:W-H965T<R]S:&5E=#4X+GAM;)5748^;.!#^*Q;J
M0RM=%XR!0)6-M+NYZBI==:MN>_?LP"2Q"C9G.YOM_?JS@9 L!G;W)0$SWWSS
M>8;QL#P*^5/M 31ZJDJNKKV]UO4GWU?Y'BJJKD0-W#S9"EE1;6[ESE>U!%HT
MH*KTPR!(_(HR[JV6S=J]7"W%09>,P[U$ZE!55/ZZA5(<KSWLG1:^L=U>VP5_
MM:SI#AY _ZCOI;GS>R\%JX K)CB2L+WV;O"G-4XLH+'XF\%175PC*V4CQ$][
M\Z6X]@(;$920:^N"FK]'N(.RM)Y,'/]V3KV>TP(OKT_>/S?BC9@-57 GRG]8
MH??77NJA K;T4.IOXO@'=()BZR\7I6I^T;&U700>R@]*BZH#FP@JQMM_^M1M
MQ 7 "!T'A!T@' *B"0#I .2U@*@#1,W.M%*:?5A335=+*8Y(6FOCS5XTF]F@
MC7S&;=X?M#1/F<'IU1HV&OVU*=F.VCPH]!%]/NB#!'1/?YG\:H7>KT%35JH/
MYMF/AS5Z_^X#>H<81]_WXJ H+]32UR84Z]#/.]K;EC:<H,4A^BJXWBOT.R^@
M>.[ -QIZ(>%)R&TXZW$-^14B^#<4!B$>">CN]?!@!+Y^-1QG,VI(GQ;2^",3
M_KH<U)+QG-6T1/4I&V*+2L%W'S7(RA3X1L^P13U;U+!%$VQ&<SB6PQ85-RC;
M0!Y7X2)-E_[C"%?<<\4O<9$QKA:5/./*4CQ.EO1DR4MDT1A9XI"1F,3A.-FB
M)UN\1!:/D2U<LC ,LFR<+>W9TEFV[T*;LG +H.5,7<XT#6UECW%F/6<V6Y5?
MN*DZ4!K!DSEW%,R4'@[.#2B8%3)TBLQIP(4&A;1 ]F #B<21@QQO,X&C% <7
MF6S?_<[JLI(QB:/G5NLQJYA,E""^Z+#XS0(W0AH_C.\4,@T4'?A!08%R455,
MV_<<;0'&]6(WLV2!AWI=*R,D&^IUK9(T74SH#<]ZPS?K9:<U234@=:3UN+K0
MB2C*LJ$XUXB0B:Z$SPT7DS='O66<\AQ0"6:R& ^8N!L]M8'G;HSGV_&?H+4M
M^BW*)11LIA@B-X$+9[M<HY0$PU)PC6(\T0_QN=7C^5Y_4PFIV7_-9&'EV&[5
M;:HI?5/N2H_K<@^#^"+#G:X1H\AYI5TC,EGAYU,%SQ\K3>\=#3QQ.DB"LV08
MN6N5DC0>ANY:900/8_<O1C_3*7?-"*W,UAZX;H>G?K4?TV^:X72P?FO']V:D
M/+MI9_^O5.Z8F0Q+V!J7P=7"A"3;<;J]T:)N!LR-T&9<;2[WYA,$I#4PS[?"
MM//NQA+T'S6K_P%02P,$%     @ F(175/AO7D[@#0  U5H  !D   !X;"]W
M;W)K<VAE971S+W-H965T-3DN>&ULQ5Q;;]NX$OXK1+ 'V 5:1]1=BS1 KMT"
MO01I=_MP<!X8FXYUHHM7DI-T<7[\&5**25O24/;*FY<V3L3A<&;X?<,1QR=/
M>?%0+CBOR'.:9.6[HT55+7\]/BZG"YZR<I(O>09_F>=%RBKX6-P?E\N"LYD<
ME";'MF7YQRF+LZ/3$_F[F^+T)%]529SQFX*4JS1EQ8]SGN1/[X[HT<LO;N/[
M125^<7QZLF3W_"NO?E_>%/#I>"UE%J<\*^,\(P6?OSLZH[^^IYXG1LA'_HCY
M4ZG]3,1:[O+\07SX,'MW9 F5>,*GE9#!X+]'?L&31(@"1?YLI!ZM)Q4#]9]?
MI%_+U<-J[EC)+_+D>SRK%N^.PB,RXW.V2JK;_.DWWJQ(*CC-DU+^2YZ:9ZTC
M,EV559XV@T&#-,[J_]ES8PEM@$U[!MC- 'OH *<9X&P-H&[/ +<9X&[/X/4,
M\)H!WE"5_&: /W1 T P(I+-JZTK77+**G9X4^1,IQ-,@3?P@_2M'@T?B3,3B
MUZJ O\8PKCJ]Y'<5^7*7Q/=,A$9)WI(OU8(7Y.=+7K$X*7\A/Y$X(]\6^:ID
MV:P\.:Y@6C'X>-I,<5Y/8?=.,9T0A[XAMD6CW[]>DI]_^J5#RL4 *;9EDG(Y
M0 J-:BD=PZ\&+\6FC1)QQ=,.2=?#)5G]RWG_=TU[#/&P#@I['12V%.L,# I$
MI+,6Z4B1;H_(&_8#$*PJ"<!/Q8N4)#G+NAQ0B_&D& &DCZ?4LRSKY/A1-Z[I
MJ0T=W;6.+JKC=9RQ;!IG]P0"G2R+?,Y+@;DL(=.\K+K<X[;U<"VO6PUOK8:'
MJO%E5945:" 4N6,)J,2[#%4+\;6IG3"T[6U+M1^S';_75/Y:1Q^-D%L^S<%4
M22P#A.1S<E'P65R1:R9^6_T@9[/_ GKQ&;DZ__#M\HQ4.<F 6N-LFJ<<":A@
MK4& 6NESC[#:.$%KU=1U'#?<,D['8YY%G6CSL?<=CX$XV^VV8;A>08AOB2)_
MC"6G0TK1K(54[)EW8>Q5V-+!]2/;WUI0QU,0D'1K/>VGG,"E8?=RHO5R(G0Y
MEQR2H6D3$&(#L30OJOBO^A?\&;*GLM-744N;MW;HMK9\UV-!M/W8^Z['7*\O
MWJFE>-)"E_>URJ</;T76,P,T2,5JY,HZ2<1JPX+E1<[6BIK'=%W]R'&W%M0A
MS N#'F=1C?<INH-O"HBX> G8-J]A3Z+<(X>?*PSPJ2(1:AO@]%G8:L&*>RY%
M%Y#<DD)8K=-H=ANI>A:I2(<ZZ"+K5&86E],D+U?%]L[:E*IH@N(\ 93M=*Z@
MS080H2'M687B XH3 LSG=L[700&>X_5936$[]='Y;OECGCP*^IG6H#YO0!VS
MGL)M&HR57% %I13'TO.\@#%29;8$;;=U;3+,L.4@ 0V]X*"@C^+8MT'9+ZIT
MPCAMXQ-P=J\*ML(G&\>G@5F#W<:<K?EK;.IX+D#45+!C4U3-C[R"]*\4&4,3
M7$ 3JZPBN=*_4V_:T@="O5<?+=/%0:I)6]@CG'787=)MLS8RT<#OGUS!DXTG
MQ>=P0B>/+%EQ80]6EAP2Y&7"9_< G*P$T$P2!N9B2:=:[20X"J->K12\V3B\
M?5ZE=X":H-&?*U:\>$LD;YP5F0ALLA(L*+(6P%?8<<ETE:P30?FK3=P@;"L9
M_!_I.35=-;IM9# ]"U+X:7L'H3I;(::-(Z8R69R!P7A9"9X#KR[K0S6R7G\H
MZ]D*86T\-?[(35S;"!"IA0KI2=_$"H5M'(5W9'R[(UOMTT%!L8U#<7?T BO$
M%;A=IJ$0FB(7>".2;7',J[/P-Y G/,8S^',IT]=2)'RDX,M5 2LJ.5F^'&'7
MT;\5^?/^Y6,1T&:$GHAW%!DX.!G<\"+.9T..96(9,RY.Y'$F3[XS>+P^\Z:P
MCGB;GYM#.CX]M4F:9]4"+1PHRG#P3%4F#!^RLBI6POYOX.=FC]W"'GM#KN9S
M+@N:!)8]A2>$U?]]=@<#V+3Z#Z:#H@D'IXGOLJ0I4+GQZN8^_QG FI%E/7U7
M'>?*()].7.M?F*9:G07GE-[D#4+PVZ+(5_<+\"QL #R?<Q1=..Y!T-51^.W@
M^:\9SYR.3+AG#RE,=_;,@L&0%P#J>1+/F B);[E E@_9#.*4SS)>EJ+88=AX
MOY*/\L$%RPB="-+N-Y0"?F= :GV8G:(XP,$YH$[PM/QNSGDY9(/@8H&=/'2#
M*()P<(*XR-,TKH1]:M4 UD7B)PJ3JTQ"^U+4+50RL_;[@$7@4UL3&]WEK@)X
M%T?80P>G"$GQ()T$'J:P G'WM4#<52#NXB"[;V@:Q-*)AWM58;>+8_<A0],P
MM6787ZY61,>/#X</S< 3#]I@=DQA12\N?CPX8&@JLG%QLMD[-'&QPE:H5Q6U
MN/B9XJ"AB4]M31Q\?REN<G$2.71HBI DD%#?%UP<VS&=%5VYT2M%IZ?8QL/9
M9M_H-(BU@60PQWJ*73R\JG3(Z#1,#=&);C%/T9.'\P@6G9_@=):N4FP>Q3(>
M7A3?-V'W% 5XIA>I.]4!&FF4;E0C^MZB:J]1\6/# 'O*?5^OG-SR/U=QP440
M8490D.[AKTCW-K/"9,_\"C39.!O5I0D(Z3M6QJ4\W.?R%8@ C"*>=A3<&Q<$
M;1?8O2Y0@.OM#[B?V+,II!5(>CA([FMK7T&@;ZRH ,+("D!3KYX3-H6(*>.Z
MQ <00@!RLY)-^UX+^AUO\OK?Q"OP\W$$.KL'OKD790A5J@)?RYKR=%44 A4U
M5>MWL[KJ<28Q4;R^Y?+]P4O]1BQ*U)&VBT1+W!B#;$$[7I'V&T.!J+\_B)X+
MT\AZS3]\@O<5-OLX-A^.[7V%WCZ.WF>J!"@<R;(,@')=[ZJK@@-XTS"+Z<#A
M*YSW]\?YL5T^\%SL:_=H<)8XH,,5C_@XCXSE<%,:CQ^3?<4J_OZL,K[#!YTV
M?455_FOE\X$BLP GLY$<;IC%,AP^ \5P <YP_Z3#AY_A D5*P8#[E(?QN6*6
M "_PC.5S?!9J.-(%BH6"_<M(5ZLBGXEWX\6KT'F@J"EXK=)2H!@FP&M 8SG>
M5&G"Z3S0[G7B//'/.WX@J0>*H(+PM=RN>"; WS6,Y79\%E/M.U2<%.[_1N-0
M;A]$[:&BJ?"UWG&$BFI"_/PSDML-LYCJRJ&BI7#_U]6'<?MP@@\5687X._ #
M>EYQ38@?@\;RO.$NJH'@0\5+H8&7P%(S\$O)LS@7%:K=+YV&BE3"T2Z=AMK]
M_3$NG8;M6TZB_V+[QN55V+Z<ZB%7+D/%!"&.T1_ALU:[OVMI3=ATFA<S61Y?
M]A1L+L+V-26*W)V-%/!'ALK:T,Z@J'TEU4$44+ =X:>+W=M^SJ..ZI7;JXD"
M[PB'U6_=R]^4IJ U&E!+&A;SD4*Z"$_+A\5\U-$7A06+ KG(5.MI;N')HB68
M2][N6RI0A4]Y$0/4@?>8*HRNZ\-UP;)39WQFITUY<MRE89PI,8X48$8X8*J-
M,G\I<PLW0(B6Z,8Y;^1N7'OO=86"U C/TP=>.&^D;(1"UX7SJ*/)RNDOCT<*
MI:/72L8CK34*A^"_?7W0(-]T?9!:>I\3CL>?\XK+3$HTNHNWOD\9+] N#4MK
M.K+P%'FGAAQ+:S6R#-?X5ZF\B M>S-87@$6;%LMB6(U\.0'TAUS#?9EA(P![
MN\:T#B0+3W ';I,7,1N;-(B\K6ZPZZ[G'-K?PF)I74T6#NTW19[&99D7/TB6
MRW3[T]4-^2U/9NUFEJU)M%8F"Z^([!8 6LN2A8/C8#.WL3#P^ZVG=359.!Q^
MK>2A9->-;1)K&P[8U-)ZI"QCP^F6@S\\<K2IR](ZH"R\KKV38_6V2T/?Y5#'
M=K1)AOW;8J-/$D\/]W6L0:S1L7JCI:'3LNW8[RQY0,^V5&^B'+.+4F^C-/11
M#G9M1U\EXEH-C R-E7N[%A?K&L[(5&_%-/1BMEU[EE9\^H"*UU#+T(RYFVLU
MJ#'T8PYV;?O0BUP#H'I'IJ$E<V_?XF*-VU;KV*2&ELT./$Y349,2UU?T&QKH
M?!J2V2,F7UH+)37T4 YU=B-F<Q_WGD2HUD=)#8V4':G+^H+7/C;5,,S&*W^[
MV52#)OLPT&00:QONTE*MYY$:FAX[C%Y?Z=K3Z!IJV2.BEM:^2 W]BWL;'1?K
M&#%#@S5#>Z.ZBEL7NC&Q6K\@;3KVQFC*USKWJ(,G.0/;\IV.<IJ/T(#6MT<-
MC74Z-F7R9+M7<#KZ5TZ,F"UI;7;4&=J6O7%Y#SG1.NU>:K_/HAHR&;KQKOE,
M=*23ZU4V*V4-!708=$,#-82&.PY^9>H3*QYXO3E+4G!Q[(=YJUSMVZ;M&IU/
M0QL'/X)I\PT! X,T:^(%*!AHK7;4>:W2%M7ZZ:BAJVVD%T^F:4SWQZC6/4<-
M[7/?>9*4Y!I4RR$\LX<WY//D;$)NBCCEHX6TUAQ'#=UQHX2TU@A'#2UK.X:T
M09IC*'%3K0..&OK0OF3\;7WW^..'\R^WH_A!_V(?/)L;QP\:EKHXEN[J!].K
M!FK8(1K(NJ]U+Y5J36?4T/HU%K08IC'=6J-:BQDU])CM%L!;5QQ0'31$-O2,
MC1+&6GL8-31R_<$@F1+]5C*09>])IQL,8K9,ARJG8:NA06O'/69L]S+L,:W?
MBQH:OK[&SX<)%:T7C!J:P<8)%0UA#:UA@T,%%[-E.E0Y_7O61H5C@S1KXKB=
MH7*L?5VO^,+G3_47K9"$ST&0N#9]1(KZ*Y3K#U6^E-_@>Y=759[*'Q><01HN
M'H"_SW,XV30?Q)<"K[_)^O3_4$L#!!0    ( )B$5U19#?KG$ 0  '$.   9
M    >&PO=V]R:W-H965T<R]S:&5E=#8P+GAM;+57VV[;.!#]%4)H@19((U%6
M;"6P#31QBBV0-$&R;1\6?:"ML4U4$K4D%3O ?OP.*5FR(YG-+M 76Y>9,W/F
M4#/D>"/D3[4&T&2;I;F:>&NMBPO?5XLU9$R=B@)R?+,4,F,:;^7*5X4$EEBG
M+/7#(!CZ&>.Y-QW;9_=R.A:E3GD.]Y*H,LN8?+Z$5&PF'O5V#Q[X:JW- W\Z
M+M@*'D%_+>XEWOD-2L(SR!47.9&PG'@?Z<6,QL;!6GSCL%%[U\10F0OQT]Q\
M3B9>8#*"%!;:0##\>X(K2%.#A'G\78-Z34SCN'^]0_]DR2.9.5-P)=+O/-'K
MB1=[)($E*U/](#9_0$WHS. M1*KL+]G4MH%'%J72(JN=,8.,Y]4_V]:%V',(
M1T<<PMHA?.E CS@,:H?!:QVBVB&RE:FHV#K,F&;3L10;(HTUHID+6TSKC?1Y
M;G1_U!+?<O33TQO HBGR;@::\52])V\(S\F?:U$JEB=J[&L,8DS]10UX60&&
M1P!I2&Y%KM>*7.<))(< /F;7I!CN4KP,G8@S6)R2 3TA81#2KX\S\N[-^[O"
MK)J>[*Y>CQ746#THLU>CT/->E .B@T:+@84='-5"*8 38C4Y(3-0"\DM4?+7
M#=J2SQHR]<,1*6HB1392="32)YZS? $D-9%(RMF<IUP_]ZE= 9U9(--$GJ;A
M<#CVGWJBGS71SUX5O>9YLPM_0AXU0XJ0:R*6I#+C+"7W0O&J#-=;;7K./ 5<
M7F4&DIGG/_H2=^=0J@\KQHJ+.[T&N<N @W(4=]C0&SJAOS&)>.FNNK#%'HW_
M^#D1M192?] @L\.7O=_9L%-Y2L^#H*E]M=Z[5J/12Z-9URB.]HP.:(X:FB,G
MS>^VI4)"V!/*L *2<+40)6J'H@#!D41P.AF!\E7%MI>E.TAT&@1O^S[S7[F%
M+]T..,8-Q]B)<W=(8"=7'X^X4^)!%';4ZEJ%<<=J5ED-]ZVB^)A>YPV7\_^F
MEP2S+VC)F679Q\P-&Y-G8%*1F&15V\<!D+#G/JVOW$BC&FE8(SGTHT$[W@(G
MZ(-I)@7C"=$"&:?,5*!@LONMU\,MZ"@4=3^Z/JNNC#U6@]$Q&>G>Q*9.2M=;
MKK +8@/%)BFJ^8#DP+3&I)>3&T_+$ERU#MO$0B?0+:ZFK,Q<6.THI+][%M)V
M&%+W-+QIEG]?U^JMJ!MP4*UD5W+MK*3N0?6ES.8@6ZE5M9!SW%'_0XYN@RYK
MU/T>0H\LO':N4?=@NV7;7^G;#@\Z^MWZMDV<NKOX_]#7#4B#XP+[>WMQW)^L
M[)E&$3L9JSUO\[0Y-WVTIX47SR_-><KN\5N8ZC!VR^2*XT)(88F0P>D(M9;5
M^::ZT:*P._ZYT'A^L)=K/!."- ;X?BF$WMV8 ,TI<_HO4$L#!!0    ( )B$
M5U2Z@/J#UP(  $0(   9    >&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM;*U6
MT6[:,!3]%2OJ0RM!$P)): 5(+:S:I$Y#I=T>ICT8N!"KCLWL"[1_/]L):0J!
M==)>B!W?<^ZYQ[DVO:U4SSH%0/*2<:'[7HJXNO9]/4LAH_I2KD"8E854&44S
M54M?KQ30N0-EW ^#(/8SRH0WZ+EW8S7HR35R)F"LB%YG&56OM\#EMN^UO-V+
M![9,T;[P![T57<($\&DU5F;FERQSEH'03 JB8-'W;EK7PZZ-=P'?&6QU94QL
M)5,IG^WDR[SO!580<)BA9:#FL8$A<&Z)C(S?!:=7IK3 ZGC'?N=J-[5,J8:A
MY#_8'-.^U_7('!9TS?%!;C]#44]D^6:2:_=+MD5LX)'96J/,"K!1D#&1/^E+
MX4,%$"9' &$!"#\*:!> MBLT5^;*&E&D@YZ26Z)LM&&S ^>-0YMJF+"[.$%E
M5IG!X> >C >:-,DDWT8B%^3;"A1%)I;$K9(;K0$UH6).[AF=,LZ0&<SY") R
MKB\,^FDR(N=G%^2,,$$>4[G6)EKW?#02;2)_5LBYS>6$1^2,8'9)VJT&"8.P
M50,??AP>O(?[QIC2G;!T)W1\[2-\%5.XLX):*YP3_,V)$XG:9:*V2]0YDNC-
M\CR/LE]?4RZ:ZUW26C-STLB1VG[=#%IA)XGBGK^IFG88=M5)PJ2,>B>Y4TKN
MG/1F7W+%D.L3CD0E?73:$4Q!F0Y0"@0>=SOW(3KTX2J(@CT;:J+BJ!O7VQ"7
M.N,/[IQKED;9(J\-,LS5-\@$*4)F"S%?TAT35,P8Y60L-7.'V<]/+VA/QBD'
M@]?XJZ[(O^AP?E7ZLTQ?UT;_A^N=84EI6'*2_%Z*91-!940>_X+JZD\.MR](
MDJ"UM\N'8=T@2H[L<K<4W3TI^E&BV:]_%-RMZ<XXB?8%'X9=):TXW!/L5\YX
M>[]^I6K)A#9*%@877":&0.5W5CY!N7+'_E2BN43<,#77/"@;8-874N)N8F^2
M\H_#X ]02P,$%     @ F(175/?H]DU_ P  _@H  !D   !X;"]W;W)K<VAE
M971S+W-H965T-C(N>&ULC9;;;MLX$(9?A1!ZT0+K2*1.=F ;:.Q=[ ()UFC:
M[C5MC2VBE*@EJ3A]^Y*4(CO1(;VQ28HSWS]#:3C+LY _5 Z@T7/!2[7R<JVK
M6]]7AQP*JFY$!:5Y<A2RH-I,Y<E7E02:.:."^R0($K^@K/362[>VD^NEJ#5G
M)>PD4G514/GS#K@XKSSLO2Q\8:=<VP5_O:SH"1Y!?ZMVTLS\SDO&"B@5$R62
M<%QYG_'M!L?6P.WXSN"LKL;(AK(7XH>=_).MO, J @X';5U0\_<$&^#<>C(Z
M_F^=>AW3&EZ/7[S_Y8(WP>RI@HW@_[%,YRMO[J$,CK3F^HLX_PUM0$[@07#E
M?M&YV9LN/'2HE19%:VP4%*QL_NESFX@K YR,&)#6@+PUB$8,PM8@=($VREQ8
M6ZKI>BG%&4F[VWBS Y<;9VVB8:4]QD<MS5-F[/3Z'DP.%)JA!ZIKR30S$W%$
M;AG=,[IGO%G\N 5-&5>?S-YOCUOT\<,G] &Q$GW-1:UHF:FEKXT@Z]8_M/"[
M!DY&X)B@!U'J7*$_RPRRUPY\$TD7#GD)YXY,>MS"X0:%^ ]$ H('!&U^WSR8
MD!-VV0V=OW#$W^ND<I=4?DGJ[00BZA"10T0C"*.4#&6^L8J=E?V6G]8D3,EB
MZ3\-P.(.%K\'"X=@C55R#<,X(L.PI(,E[\&B(5C2@^%Y&LZ'86D'2]^#Q4.P
MM ]+D['(YAUL_AXL&8+-^[ H"?$P;-'!%I.PKSF8^G[4((>0BQXRCG$R@L3!
MI:H$TU"A*6^KR([^-'5?#]>'H!]RC(,H'!%P5=;PI(![4&JVDZ ,&7VGO :T
M9>H@ZE(/ZL ]'3,2D<7(06-RT4$F=;R6,%19!^60?EI(DL:7<VFJ6;OO^BM?
MI#@94WTI6WBZ;CW65<7!GIHY158VW4)S<7.J(4-:--5LLH3A2PW#TT5L0U6.
M*LHR9%"(%O:8E $?>&WN!7O+Z!Q088BU=+(&R^E@)J-^:2(D)&\3.; MB$9?
MPTN]Q-,%\]\*I,E<>6K52MM5S,1Q5IL)50I,F&)O+M:R"1.>#SDM3^#R\'L!
MQKU7($H3TGM3^MM(&D;)FP#]JTZB 'ER#99"[KMI;N%NM6OB/KO6Y<WZG6WN
M7(=R<=-TA@]4GEBI3'1'XS*X28TFV31;S42+RO4K>Z%-]^.&N6E00=H-YOE1
M"/TRL8"NY5W_ E!+ P04    " "8A%=4.UJ^QT,#  ">"@  &0   'AL+W=O
M<FMS:&5E=',O<VAE970V,RYX;6RM5DUOVS@0_2N$T$,"K"-2WRIL TVT17LH
M8"3I]LQ(8UNH1+HD':?_?DE*5AR)-H*B%UNDWGLSCT.1,S]P\5-N 11Z:1LF
M%]Y6J=U'WY?E%EHJ;_@.F'ZSYJ*E2@_%QI<[ ;2RI+;Q XP3OZ4U\Y9S.[<2
MRSG?JZ9FL!)([MN6BM^WT/##PB/><>*^WFR5F?"7\QW=P .H[[N5T"-_4*GJ
M%IBL.4,"U@OO$_E8$$NPB/]J.,B39V2L/''^TPR^5@L/FXR@@5(9":K_GN$.
MFL8HZ3Q^]:+>$-,03Y^/ZI^M>6WFB4JXX\V/NE+;A9=YJ((UW3?JGA^^0&\H
M-GHE;Z3]18<.FV /E7NI>-N3=09MS;I_^M(OQ F!)&<(04\(QH3H#"'L">%[
M"5%/B.S*=%;L.A14T>5<\ ,2!JW5S(-=3,O6]FMFZOZ@A'Y;:YY:?F4E;P$]
MTA>0:(96@C_7MJ97!2A:-_):SWY_*-#5AVOT =4,/6[Y7E)6R;FO= )&QB_[
M8+==L.!,,!*@;YRIK43_L@JJMP*^SGQ(/SBF?QM<5"R@O$$A^0<%."".A.[>
M3\<.>O%N.LDON F'8H16+SRC=[<7 IA"BKZ@W;$2LPO"T2 <6>'HC/!GJ$#0
MQE6QCAA;HCDDGI<A";)P[C^?+J,#E<1Q\A95.%!AD)$!]2;W>,@]OIC[@Z(*
MD-YP:+4'H3BZKTON<M+))"?1LS0B(R-3$ G2/!L9<4B%6>;VD0P^DHL^'KFB
MC?ZD;8E=^2>3H!'&030RX$#E83Q"%0X429+<[2 ='*07MV<!:]#95V_W)[IZ
M @;K6EU?VJG9$"/[TYV:33PE)$]'RS,%S>)HO)T+!RI,8^Q>GGQ(/?\[&S6?
M1$]Q//(QQ<R"*,4C'PY4C,]\;P2_7@GX'3NUZJOM/.;QM!8Y#D8>'*A9FL?C
M8KA@41"?LW%RLY&+-E[O,MT>Z9O+7G3*7'1.2V1R>$5)'B1C3PX8B3 9>YK"
M0GT8C8\0_^3B;D%L; ,D4<GW3'67X# [-%F?;&LQFK\US9=M"%YENL[M&Q6;
MFDG4P%I+XIM4YR2Z9J@;*+ZS[<$35[K9L(];W4"", #]?LVY.@Y,@*$E7?X/
M4$L#!!0    ( )B$5U0(,P\SUP0  *H2   9    >&PO=V]R:W-H965T<R]S
M:&5E=#8T+GAM;+58VV[C-A#]%<+8%@E0QZ+N2AT#FSA.\[!MD.QNGQF)MH65
M2%>DXFR_OD-*D66)4KPM^F+K,F?(<V;(&6J^Y\4WL:54HM<\8^)JLI5R=SF;
MB7A+<R(N^(XR>+/F14XDW!:;F=@5E"0:E&<SV[+\64Y2-EG,];.'8C'GI<Q2
M1A\*),H\)\7W:YKQ_=4$3]X>/*:;K50/9HOYCFSH$Y5?=@\%W,T:+TF:4R92
MSE!!UU>3C_CR#D<*H"V^IG0O6M=(47GF_)NZN4^N)I::$<UH+)4+ G\O](9F
MF?($\_BK=CIIQE3 ]O6;]Y4F#V2>B: W//LS3>3V:A).4$+7I,SD(]__1FM"
MGO(7\TSH7[2O;'UO@N)22)[78)A!GK+JG[S60K0 > A@UP"["W ' $X-<+H
M?P#@U@#WU!&\&N"="O!K@'\J(*@!@0Y6I:X.S9)(LI@7?(\*90W>U(6.KT9#
M1%*F4O%)%O V!9Q<W+.8YQ1])J]4H"EZI#%G<9JE1"?*V9)*DF;B'%Y]>5JB
MLP_GZ -*&?J\Y:4@+!'SF819*%^SN![QNAK1'AC109\XDUN!;EE"$P-^.8['
M]HB#&=!O-+#?-+BV1SU^(L4%<O OR+9LVS"AFW'X$]T!W%)P')GXC,.7-&Y&
MQP;X[>EPRP!?G0PW3O[N='@X$@JG24='^W,'_-VNUU1O3DB25U00"5D)>0A)
M*5-6IFR#8!,N='*:4F\Y[MUV+P+K)Y/&[^#PA6_$K7Y\O"-9W$86=]31BB;
M.D-"$EE*7GR'-:C7[9M*Z(P(1!!H$U,FSTW2C(\ %"VS-/\2M_IQW)$T7B.-
M-^KHOA$"4H5()+<4K7MR*8U,HE2^/>U;5>V7A1-%'F3R2UN"OI4+.X5S;+4R
M^,*A[S=61_3\AIZO8<XP/>@P!' [2VA]>0X]@(!2JY;#NN#Y=$3&H!DG&)7Q
M=^AZE%RTE5G4N,0J/WZ+9N"X5D>QOE'H6GY'L+Z1[[NN6:^PX1&.\OA*LK*J
M722#-HNPV,PB[(T]=:(."8.-[;D=$B:C(#*3B!H2T;O!*%D!M7C#TK]IHI?Y
M,V5TG4HCFZBO9"\D?1L<>E[0H=.W"APG--/!UJ')L,8)<56J2]C9GS.*Z"LT
MTL(<E]I1>P*V$^(.%Y.5&W08KTQ6.+0&R+0Z)CQ*YO%GDN]^7>J@P(I,S#&Y
MJ;VT]X.IZUO=L-1FQPGD8Z>[NYCL7,_OY.R=:50[L(9(VP?2]BAI'$1+5,>0
M,V/D[/X$L6T%7;XF,\NWNW0-9AZV!W93?.@O\'A)?I(\_C95AY<$NHI<)6*U
M733<S&GI&*)DXUXP#6:NW=WW3%8!'MCX\*%'P.,E]0\H?85Q\FY_>W"Z,^_;
M3)VPMZ+Z5L'0YG HX'B\@C\4_"751ULX6;];?K"A&/M15^-;DQEV+=PEY/4(
M.8&+AS@=JC;V_]MR6=4.CA>J/;A0#W4<CQ=R.*#3F @YTA/@0S'%X?_:?>!#
MQ</C)>^>20I^I>KVV[TM79?,=$B\KOVU]<-^3[Y9ZV2<TV*C/WH(6/DED]6I
MI'G:?%CYJ#\G=)Y?X\L;;'B^5!]B]$G\X+[ZB@.GRDW*!,KH&H:R+@*8:E%]
M&*EN)-_I<_DSEW#*UY=;2J!S50;P?LVY?+M1 S2?IQ;_ %!+ P04    " "8
MA%=4$L]L0XD$  "C$P  &0   'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6RM
M6%UOHS@4_2L6&JU:::9@\YEN$JE-,M,^C+9J.KO:1Q><! U@UG:2CK0_?HTA
MD 1PTFY>6C#W7-][;)][X^&6LI]\18@ ;VF2\9&Q$B*_-4T>KDB*^0W-22:_
M+"A+L9"O;&GRG!$<*5":F,BR/#/%<6:,AVKLB8V'="V2."-/#/!UFF+VZYXD
M=#LRH+$;>(Z7*U$,F.-ACI=D3L2/_(G)-[/V$L4IR7A,,\#(8F3<P=L'Y!4
M9?%G3+9\[QD4J;Q2^K-X>8Q&AE5$1!(2BL(%EO\V9$*2I/ DX_BG<FK4<Q;
M_>>=]Z\J>9G,*^9D0I._XDBL1D9@@(@L\#H1SW3[0*J$W,)?2!.N_H)M96L9
M(%QS0=,*+"-(XZS\C]\J(O8 TD\W %4 ="[ K@#V,<#I 3@5P#D&>#T MP*X
MY\[@50#O7(!? ?QS 4$%"-3JELNAUG**!1X/&=T"5EA+;\6#VA *+9<PSHJ]
M.Q=,?HTE3HP?LY"F!+S@-\+!%_#$Z"96^W*RPMF2\,]@]H;EO%CMM*LI$3A.
M^+4T_3&?@JM/U^ 3B#/PLJ)KCK.(#TTAHRI\FV$5P7T9 >J) (+O-!,K#F99
M1*(._$2/MT_A9R?F1QH'IJ2SYA3M.+U'6H]_A.(&V/ S0!:RNA+2P^<DEW"K
M%SX]&PX'773HX5,2UL'##OC7\^%=P7\[&]X9_,/Y\$"SDG9].FSESS[C=&C<
M.;4[1[ES>MP]_X;3_/<I$/@-A(Q$L>@Z+]/2B:N<%+5G,W8\2Y*YV5^&MA'R
MH&T?6GWK<.5Z@T.CAPY7_MY\!ZFZ=:JN-M6[2&8G)8.KRA(!*1Y%UCGEU3 C
M"1;R@Z @9S%EX!?!K(N.B=L*S[>/Z9BUC9S@*,^OI8UW0%G@!D>4M:U\Q[>[
MV?!J-CPM&] ?3&5%C=:J8'<="Z\=&^I; [^>U==OMV)"27%>B[KL=:1:JSTM
MVGNZI-MO11*TZ=9.7/1;MSS'(1D9LJ'BA&V(,09=8M(Y&3Q:D?\_V0%]04U?
MH*7OZ3VTS8*.0SM WM$6[+""3BOAMI7M.S#HW@V#.IV!-IW'3!"6X00\DPW)
MU@3,)55Q2,#5X_/\6L,7M)I>PKJ$7,*]Y@2>V,&+=1:!,,%QR@%.9*<M][/L
M-Q[KU0"DZ4\ZFP?8(C,8])TLB)K(D#:R%RHDE3)3\'>A6T7!\;Z<J#JP*3OP
M(G4'-H4'ZBO/Y>3X'G:4BR#H9;0I&%!?,7;%L>!THHHCD TE4-(YW4DG^+?F
M7%&N(Z<19^A=A.U&=Z%>>-^E'/>P+8*#?CX;]8)Z^?H(G[XN_49HX. 2?*)&
M5Y!U03XK9P=\NGU\HD:+T DM^@"?.C5 C=8@=!$^&WE!]B7YM%M\0M@KH:C1
M)'1>-WR2T ](+6ID![D7(;=1$Z3O]=Y)KM>N];#=^9E[O_!3PI;JMH>#D*XS
M4?Z<J4?K&Z4[=8]R-#Z!MU/8,3Z#MP_E?5'COKR^^H[9,I85(B$+.95UX\M8
M67DC5+X(FJO[A5<J!$W5XXK@B+#"0'Y?4"IV+\4$];W<^#]02P,$%     @
MF(175,Y>W*IY!   [!   !D   !X;"]W;W)K<VAE971S+W-H965T-C8N>&UL
MG5A=;^,H%/TK*)J'CK2N#?X>I9$ZK7:WTNQN->W,/A.;)*C89  W[;]?L%,[
M-=B-]B6QG7,OAX/O/9#E@8LGN2-$@9>*U?)JL5-J_\7W9;$C%9:7?$]J_<N&
MBPHK?2NVOMP+@LLVJ&(^"H+$KS"M%ZME^^Q>K):\48S6Y%X V505%J]?">.'
MJP5<O#WX3K<[91[XJ^4>;\D#43_V]T+?^7V6DE:DEI370)#-U>(:?KE!H0EH
M$3\I.<B3:V"FLN;\R=S<E5>+P# BC!3*I,#ZZYG<$,9,)LWCUS'IHA_3!)Y>
MOV7_O9V\GLP:2W+#V;^T5+NK1;8 )=G@AJGO_/ G.4XH-OD*SF3["0Y';+
M12,5KX[!FD%%Z^X;OQR%. F T40 .@:@<P/"8T"KG-\Q:Z=UBQ5>+04_ &'0
M.INY:+5IH_5L:&V6\4$)_2O5<6IU5Q>\(N 1OQ )/'!+-D0(4IH'X%I*HB2X
M^$;QFC*J*)&?P<4M49@R?>6!'P^WX.+39_ )T!H\[G@C<5W*I:\T,9/>+XXD
MOG8DT 2)6U)<@A#^!E" H"/\YOSPX'VXK^7H-4&])JC-%T[F.XJ@M BX%<&;
M21OV:<,V;321]KHH>%-K004I"'W&:T: U@M@IFL)UP4!NBI!R9NUVC1,O^ =
MW"5G-U#<#F0*]7D%LS1;^L^GHMD@!+.D![V;0]3/(9J=PX/BQ9-GZJ8$^L71
MS41B4XXNDEVFY&3\,,S1B*0-0FD.W23CGF3\D="BT039\-ZV0I,7PY<X%8UM
ML@F*XQ%;!RI/DPFZ24\WF:7[C6@Y3\FZ^"4NG:)HQ,^!0FF2N?FE/;]TEM_?
MVDRT;0B]T/46,"XE*+ 0K_IM/6#AKO?4(@*#,,U'=!TH!%'JIIOU=+-9NG>U
MPO66MM75UJZ+7V8O9!9/K&/>#YS/#OR/VA'A&BRW!DOC<;':F&1*"!@,O3V8
MKU;=2KC"S-F1 VO$+(KB=,3+!0M0$DQ0.[$=.$OM)V8-[HS\K?VYC0-:XWM1
M.JY+%RJ&T03)P0<@FB7Y:,0SFX*Q'3B9(ENI,,_&#<\!2_,TFNC+<# 7..\N
M]\+4J'KM.MVOAN[U9DLYB8:V6#".PW$S<>+"+)UZ+0</@?,F\LY?/^A[T#8(
MF$;6^CM0VFPFB X^ N>-I.O,PNP$/;[Q&GEL*4ZBMC=XND4'%E47#J4PGB [
MN C\P$9XO?44$94VYEH)O3]V"VI[A)<GUMH[4$DP)>C@)'#>2L[IS3?0M@4/
M16AB[,$6X+PO_,%Y>:#,W0QM/_!@&B(XEL6%@\GDX@W6 ?^G=T#;&#P8Y&/[
M<,%0@B:Z"AH<!,T[B*,#?E"PR#8,+T$9&O=!%RZ&23;1M-'@+&C>6<QVY<R6
MC6S;0'HY@S%5!RP+DHDW$IT<,\X\9]#N$#9%]GWZP1'0O",XCC%.$1SG!&3W
M+1<LCX+QGLD_.8J:_P'^PF)+:PD8V>BXX#+5"41WM.YN%-^WI],U5_JLVU[N
M""Z), #]^X9S]79C#KS]'QRK_P!02P,$%     @ F(175*2Q9CW\!   &10
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
M#- $P/.E$'K7,!T47WPF?P-02P,$%     @ F(175*%9OM>: @  1@<  !D
M  !X;"]W;W)K<VAE971S+W-H965T-S(N>&ULS57);MLP$/T50I<F0&,M=NPV
ML 7$=HKV8-2(T?;,2".+"!>%I&+G[SNDECJ![>;00R\BAYSW^&:&&DYW2C^:
M$L"2O>#2S(+2VNHF#$U6@J!FH"J0N%,H+:A%4V]#4VF@N0<)'B91- X%93)(
MIWYMK=.IJBUG$M::F%H(JE_FP-5N%L1!MW#/MJ5U"V$ZK>@6-F!_5&N-5MBS
MY$R -$Q)HJ&8!;?QS7+B_+W#3P8[<S G+I('I1Z=\2V?!9$3!!PRZQ@H#L^P
M ,X=$<IX:CF#_D@'/)QW[%]\[!C+ S6P4/P7RVTY"SX%)(>"UMS>J]U7:..Y
M=GR9XL9_R:[UC0*2U<8JT8)1@6"R&>F^S<,!(!Z? "0M('D+&)T #%O \+V
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
MX5G_.O"C5K;(X,<'\,]PW\<])=)9%/I1WX$8MXBQ08Q>F @'=*^%[CG)?G@
MGN0"T(KG";Q#:B8BJ%+$%HC3:@GHC4I?RHJ"<H%6P&NQWG;EL>YH8#K2$_Y^
M:H08!_<=_/HMO_Z+^&5J)OTJP;HGC'<8-AGJ8CAH&0[<Z8[Z/C'I[L5^-'3D
M9-@B#D^=[E$+/7JM=(\ZU-1*=*N)0VLZX:MEO.GJ"<DF2YTD=YP1/W..'TLZ
M)A:3G#KMV'H2=IO2"1/?]/1$5,=,Q];E</QZF8_WW,B5>&N7V.V7NPN?0#_0
M\\T>6\O#?6<A;-&_K*60:M7,JZ4+UQH5=CO5YW5YJT13:M[4*_,/U+7H-0+6
M6/T= <DA]:RQX:&3P7>S$8+T_.(>N-K8H6O0NT,U0%7QE>1J'[:F!?J8+Z"3
MDQL]1H^@*L.EE?5)[#;*/:9M<<YU<;ZD$D=[E4B&/HZZM236)XG;)_<J\=GK
M$+$V1_ )*Y%8JR/D=)788.U68DP.J&?]D+C]\#<K\0AZKZY$-$1EO7=5N]B4
M/KI*DUB;)&Z;/%UIDGV3C$9^'!\0UYHD^563/%J:UB3)*4V26),D)S1)LF^2
M@_" >M8DR1\UR2/HO:,F2:Q)DM<R2;)ODE'LCP;_TS+8.<R6P)?FR"Y0PM:5
MK,^U[=WVL\!%?1BVK]??%#Y1OLQ5_12P4*&A/U ES>MC>MV0;&6.QK=,JH.V
MN<R IL#U"^KY@C&Y;>@.VH\ETY]02P,$%     @ F(175'?9T^VN!@  M1X
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
MB$]QB0-'48##T*V M@KHI(+?I% *W$NQ29U31@=3%E""86BI<,!\&D?$$N&
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
M@6FPC6'/TN[8N#!N"C_'<O@Y+>85EYK]X"F0W@IN"BW*-S3P4,40.V:4_%O
MAU;M+A-FE2&Q5KXKM7Z6:5KUCILU7 Q/( <&4+3E#3EC7AD2BP6*L#V42(>Z
MAH P[LLWN'284(;$1ID(RV5:=N&YW0D-74+KLN"9022A*'0Q,:4,B9TR$2O+
MYJM4;OF;9Q"SR)!8(S/HJZ)!@^EB2.R+FSQ1F6!+_JO)A#EB2"R):;9/U4$(
M=BERL9&6W:>\^?MA<A@2VV&LLDS:*M56_;,4! PV1)[(1@@]S T>L1L65B6/
M.Y6NA39_52G$'EPV3 P>L1@JMOXE]((R>!G<R9Q6*!XZ]""6Q$)LJP%<^ZC-
MP\3@$8L!+9\:=;*'&<(C-@2.Z;N8F"$\8D.@=5XSFI@P/&)AO%/GL;-E6;DT
M4@YF$H_8)&Z]=V3[VX7#E.(1*P4M_)H_->86C]@M[85?6S1]S"X^L5W0"K 1
M31\3C4\LFM,*L#6.F&E\8M/4I6 K%CJM16P9MR9LA</<XE.[I:6R:87$S.(3
MF^6]$N<5U,7$S.(3FZ6ETFD-):85OZL)+796IB$7$Q.,W^7$UL_ Q<0$XQ,+
M!L<,W2EK3# !]? %Q8Q<3$PP ?5(!L6,74Q,,P&Q9O ZURW' TP[ ;%V<$RW
M"P7H>@JQ@'#,1A?"%!1T.KAI="%,04%7@YNZQG0Q,0L%'SJXJ=D:C@PP^03$
M\FG0]5EUJ*'TJ":UM^Z,;(#))R"6SPGF[XDSRZ9<YWUW*1*33T@LGQ/,>HCS
MI]'%Q.03$LL'']*Z63W$Y!-VN>32R.HA)I^06#XXIIO50TP^(;%\WIL@>,U(
M+B:ZG$^^]H)-$#2>34P^(;%\WDX0M&3V$/-.2.R=-X1]=E58L"2[YX?,'4B&
MF(!"8@&U8-8_?!U0%Q,34$@LH.-\2\NO'&'&B8B-\\K59\Z 8@[]G)=^9#,7
M$S-.1&R<WYBW'!Y!<"$< &G5#%W;Q<2,$Q$;IS%]U6>0,DN&XX1! Q,S3O21
MLVQ]]B 2E2<RE:^3&RXF9IR(V#CO1G.\@]K2S4 19IR(V#@GF!.Q$;HL@:&!
MC8PKQ@C=0D9LG!/,F3*&C;G6![C;,]<N)J:=B%@[[2OP;65&A&DG(M8.NA3/
MW %%A&DGZG+'0&.Y),8L%'>P9P">47ADRVKXR<7$+!1_Q/:!MY@C8.Q/&C,&
M,6:AF'H703OF79&MH"YR1Y$Q9J&8>D?!>RL54(S *1<3LU#\$:L^[V$VNQ!F
MH;BK=1\HV[ETTWN,62CN8MVGI2B.T8W,E8,&U<7FV]<U>"(7ZSOX  /M"4^3
M>\W*EVK'EA>$Y:ZM39&F8VB;YS/%U\=_T#C^<\FW_P!02P,$%     @ F(17
M5'KM3FU6 @  CBT  !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\W:
M2VZC0!2%X:U8+""X[JN25IQ13S*-L@'DE!^*;1#02K+[MIR!?5 />A)Q1JA
M7/[1)U3P^%(.S;AO3\-NWPV+S^/A-*RJW3AVO^IZ6._*L1GNVJZ<SE<V;7]L
MQO.RW]9=LWYOMJ66Y3+J_G9&]?1X.W/Q^M65_YG8;C;[=?G=KO\<RVG\Q^#Z
MH^W?AUTI8[5X;?IM&5=5_7FXGA[JRR'=G2=7B^>W5=4_OZ6JGCM(($CF#U((
MTOF##()L_B"'()\_*" HY@_*$)3G#[J'H/OY@QX@Z&'^H+1$&9<$21.L";1.
MR'4B\#HAV(E [(1D)P*S$Z*="-1.R'8B<#LAW(E [H1T)P*[$^*="/06U%L(
M]!;46PCTELG+-H'>@GH+@=Z">@N!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+
M@=Z*>BN!WHIZ*X'>BGHK@=XZV2PAT%M1;R706U%O)=!;46\ET%M1;R706U%O
M)=!;46\ET-M0;R/0VU!O(]#;4&\CT-M0;R/0VR:;W01Z&^IM!'H;ZFT$>AOJ
M;01Z&^IM!'H;ZFT$>COJ[01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'K[Y&,E@=Z.
M>CN!WHYZ.X'>CGH[@=Z.>CN!WH%Z!X'>@7H'@=Z!>@>!WH%Z!X'>@7H'@=Z!
M>@>!WC'YV81 [T"]@T#O0+V#0.] O8- [XQZ9P*],^J="?3.J'<FT#NCWIE
M[XQZ9P*],^J="?3.J'<FT#M/?A;\2;V'\>M0AFO/]QJ?_Y-4C^=[R_7QE^7W
MR0D[%YSKVXKAZ2]02P,$%     @ F(175%6HN6<2 @  <RP  !,   !;0V]N
M=&5N=%]4>7!E<UTN>&ULS=K?3MLP% ;P5ZERBQK7_S=$N0%N-R[V EYRVD9-
M8LLVK+S]G!20-K$*5*1]-XU:V^<[\9%^5[WZ\10H+0Y#/Z9UM<LY7#*6FAT-
M+M4^T%A6-CX.+I>O<<N":_9N2TRL5H8U?LPTYF6>:E375[>T<0]]7MP=RL^I
M\^.ZBM2G:G%SW#AEK2L70M\U+I=U]CBV?Z4LGQ/J<G+>DW9=2!=E0\7>3)A6
M_AWP?.[[(\78M;2X=S%_<T/9Q0X]2_FIIU2?+O%&CWZSZ1IJ??,PE"-U"I%<
MFW9$>>CK8]&+T\FYW# =/_G9^7.94X%EYWWT(96)1?IXW,M(IM/+4 I1S-WI
M5WQ-+*7/?C^:IMU2^\[L<KV_?-S/\TAL?IQ_QW_.^+7^!_L0('U(D#X42!\:
MI \#TH<%Z>,+2!]?0?K@*Y1&4$3E**1R%%,Y"JH<156.PBI'<96CP,I19!4H
ML@H4606*K )%5H$BJT"15:#(*E!D%2BR"A19)8JL$D56B2*K1)%5HL@J4625
M*+)*%%DEBJP215:%(JM"D56AR*I09%4HLBH4616*K I%5H4BJT*15:/(JE%D
MU2BR:A19-8JL&D56C2*K1I%5H\BJ460U*+(:%%D-BJP&15:#(JM!D=6@R&I0
M9#4HLAH462V*K!9%5HLBJT61U:+(:E%DM2BRVO\IZT_O]Y\</S_KP77C2SZ;
M_VM\_1M02P$"% ,4    " "8A%=4!T%-8H$   "Q    $
M@ $     9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    ( )B$5U1)27SI[0
M "L"   1              "  :\   !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4
M Q0    ( )B$5U297)PC$ 8  )PG   3              "  <L!  !X;"]T
M:&5M92]T:&5M93$N>&UL4$L! A0#%     @ F(175 40)3MF!@  UQL  !@
M             ("!# @  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4
M Q0    ( )B$5U05(0).D@<  !8>   8              " @:@.  !X;"]W
M;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4    " "8A%=4ZA]\79 #  "]
M#   &               @(%P%@  >&PO=V]R:W-H965T<R]S:&5E=#,N>&UL
M4$L! A0#%     @ F(175(@*3[%9!0  6!0  !@              ("!-AH
M 'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    ( )B$5U1+8&UD
MU0<  .XI   8              " @<4?  !X;"]W;W)K<VAE971S+W-H965T
M-2YX;6Q02P$"% ,4    " "8A%=4[W]OA58"  #)!0  &
M@('0)P  >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%     @ F(17
M5/)$E2A^"0  ;R@  !@              ("!7"H  'AL+W=O<FMS:&5E=',O
M<VAE970W+GAM;%!+ 0(4 Q0    ( )B$5U0Q^D;$A0,  /X'   8
M      " @1 T  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"% ,4
M" "8A%=46WNQ30T?  #57   &               @('+-P  >&PO=V]R:W-H
M965T<R]S:&5E=#DN>&UL4$L! A0#%     @ F(175(ZC4(>\'P  ^&@  !D
M             ("!#E<  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6Q02P$"
M% ,4    " "8A%=4<=<U"UP*  #7'0  &0              @($!=P  >&PO
M=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    ( )B$5U0Q*%:+HPT
M '4I   9              " @92!  !X;"]W;W)K<VAE971S+W-H965T,3(N
M>&UL4$L! A0#%     @ F(175)5R690/"0  JQ@  !D              ("!
M;H\  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4    " "8A%=4
M,[CJ@84#    "0  &0              @(&TF   >&PO=V]R:W-H965T<R]S
M:&5E=#$T+GAM;%!+ 0(4 Q0    ( )B$5U2JC'GLS0(  #T'   9
M      " @7"<  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L! A0#%
M  @ F(175%/3D'4O$   63,  !D              ("!=)\  'AL+W=O<FMS
M:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    " "8A%=46X4)K2X&  !A$
M&0              @(':KP  >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;%!+
M 0(4 Q0    ( )B$5U3C4=F@&0T  *$J   9              " @3^V  !X
M;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#%     @ F(175%O(7HG%
M!   )@L  !D              ("!C\,  'AL+W=O<FMS:&5E=',O<VAE970Q
M.2YX;6Q02P$"% ,4    " "8A%=42A8"U+8)  "-%P  &0
M@(&+R   >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0    ( )B$
M5U3'*DX>RP<  .L7   9              " @7C2  !X;"]W;W)K<VAE971S
M+W-H965T,C$N>&UL4$L! A0#%     @ F(175-R;CF7Q"@  4"(  !D
M         ("!>MH  'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q02P$"% ,4
M    " "8A%=4Z47S14P#  !N"P  &0              @(&BY0  >&PO=V]R
M:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    ( )B$5U2T"ZTEE2,  #MR
M   9              " @27I  !X;"]W;W)K<VAE971S+W-H965T,C0N>&UL
M4$L! A0#%     @ F(175&D5,#M'!   X0T  !D              ("!\0P!
M 'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    " "8A%=44!#F
ML $(   *'   &0              @(%O$0$ >&PO=V]R:W-H965T<R]S:&5E
M=#(V+GAM;%!+ 0(4 Q0    ( )B$5U0MSK%K] ,  &\-   9
M  " @:<9 0!X;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#%     @
MF(175,X8=I*F!   E0P  !D              ("!TAT! 'AL+W=O<FMS:&5E
M=',O<VAE970R."YX;6Q02P$"% ,4    " "8A%=4872H7[D$   Z#@  &0
M            @(&O(@$ >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;%!+ 0(4
M Q0    ( )B$5U3Q&KDH7 ,  '4(   9              " @9\G 0!X;"]W
M;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%     @ F(175&GB_P+? @
M&0<  !D              ("!,BL! 'AL+W=O<FMS:&5E=',O<VAE970S,2YX
M;6Q02P$"% ,4    " "8A%=4Y=0:E $&   J$P  &0              @(%(
M+@$ >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    ( )B$5U1V
M-X;@.@0  *P,   9              " @8 T 0!X;"]W;W)K<VAE971S+W-H
M965T,S,N>&UL4$L! A0#%     @ F(175':<XF38!P  %!T  !D
M     ("!\3@! 'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"% ,4
M" "8A%=4>.DV:38#  !T"   &0              @($ 00$ >&PO=V]R:W-H
M965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    ( )B$5U1OY!X\%@0  *<-   9
M              " @6U$ 0!X;"]W;W)K<VAE971S+W-H965T,S8N>&UL4$L!
M A0#%     @ F(175"G-<;)H P  = L  !D              ("!ND@! 'AL
M+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4    " "8A%=4;1W5HV("
M  !@!@  &0              @(%93 $ >&PO=V]R:W-H965T<R]S:&5E=#,X
M+GAM;%!+ 0(4 Q0    ( )B$5U2,U]3?B0(  ($&   9              "
M@?). 0!X;"]W;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%     @ F(17
M5'%^5+A,!0  4Q@  !D              ("!LE$! 'AL+W=O<FMS:&5E=',O
M<VAE970T,"YX;6Q02P$"% ,4    " "8A%=4D:('AW8"  #Z!0  &0
M        @($U5P$ >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0
M   ( )B$5U0 K\P6>P(  .D%   9              " @>)9 0!X;"]W;W)K
M<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @ F(175+X*ORCY!   7!,
M !D              ("!E%P! 'AL+W=O<FMS:&5E=',O<VAE970T,RYX;6Q0
M2P$"% ,4    " "8A%=4WC%\]!T'   F+   &0              @('$80$
M>&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    ( )B$5U1-%WFK
MS@,  !H-   9              " @1AI 0!X;"]W;W)K<VAE971S+W-H965T
M-#4N>&UL4$L! A0#%     @ F(175!'7=LLK P  2@L  !D
M ("!'6T! 'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4    " "8
MA%=4]++LD7D&  #H'@  &0              @(%_< $ >&PO=V]R:W-H965T
M<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    ( )B$5U2P:WDOR00  )D1   9
M          " @2]W 0!X;"]W;W)K<VAE971S+W-H965T-#@N>&UL4$L! A0#
M%     @ F(175)N'JQ*[ @  FPD  !D              ("!+WP! 'AL+W=O
M<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4    " "8A%=4NBJ_BQ4$  #O
M$0  &0              @($A?P$ >&PO=V]R:W-H965T<R]S:&5E=#4P+GAM
M;%!+ 0(4 Q0    ( )B$5U0"S?/KO00  -T5   9              " @6V#
M 0!X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @ F(175'Q>
M@30(!   C0X  !D              ("!88@! 'AL+W=O<FMS:&5E=',O<VAE
M970U,BYX;6Q02P$"% ,4    " "8A%=4%'@0D"4%   7&0  &0
M    @(&@C $ >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4 Q0    (
M )B$5U1N:\*N%0,  "X)   9              " @?R1 0!X;"]W;W)K<VAE
M971S+W-H965T-30N>&UL4$L! A0#%     @ F(175/[R2A=N!0  \AX  !D
M             ("!2)4! 'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6Q02P$"
M% ,4    " "8A%=4!LCB?!$#  "S"0  &0              @('MF@$ >&PO
M=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    ( )B$5U1V5@%.5 ,
M (T+   9              " @36> 0!X;"]W;W)K<VAE971S+W-H965T-3<N
M>&UL4$L! A0#%     @ F(175&@)0??' P  X P  !D              ("!
MP*$! 'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4    " "8A%=4
M^&]>3N -  #56@  &0              @(&^I0$ >&PO=V]R:W-H965T<R]S
M:&5E=#4Y+GAM;%!+ 0(4 Q0    ( )B$5U19#?KG$ 0  '$.   9
M      " @=6S 0!X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L! A0#%
M  @ F(175+J ^H/7 @  1 @  !D              ("!'+@! 'AL+W=O<FMS
M:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    " "8A%=4]^CV37\#  #^"@
M&0              @($JNP$ >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;%!+
M 0(4 Q0    ( )B$5U0[6K['0P,  )X*   9              " @>"^ 0!X
M;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#%     @ F(175 @S#S/7
M!   JA(  !D              ("!6L(! 'AL+W=O<FMS:&5E=',O<VAE970V
M-"YX;6Q02P$"% ,4    " "8A%=4$L]L0XD$  "C$P  &0
M@(%HQP$ >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM;%!+ 0(4 Q0    ( )B$
M5U3.7MRJ>00  .P0   9              " @2C, 0!X;"]W;W)K<VAE971S
M+W-H965T-C8N>&UL4$L! A0#%     @ F(175*2Q9CW\!   &10  !D
M         ("!V- ! 'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6Q02P$"% ,4
M    " "8A%=4!SZ65 P$  "G#@  &0              @($+U@$ >&PO=V]R
M:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    ( )B$5U3X]XJI"0,  ' )
M   9              " @4[: 0!X;"]W;W)K<VAE971S+W-H965T-CDN>&UL
M4$L! A0#%     @ F(175&">Z8W\ P  0Q0  !D              ("!CMT!
M 'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"% ,4    " "8A%=4/^.X
M77P$  #]$0  &0              @('!X0$ >&PO=V]R:W-H965T<R]S:&5E
M=#<Q+GAM;%!+ 0(4 Q0    ( )B$5U2A6;[7F@(  $8'   9
M  " @73F 0!X;"]W;W)K<VAE971S+W-H965T-S(N>&UL4$L! A0#%     @
MF(175.UVU2]Z P  S@H  !D              ("!1>D! 'AL+W=O<FMS:&5E
M=',O<VAE970W,RYX;6Q02P$"% ,4    " "8A%=4,?N+2P0%  "=$P  &0
M            @('V[ $ >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM;%!+ 0(4
M Q0    ( )B$5U2+]08+X0,  #@1   9              " @3'R 0!X;"]W
M;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%     @ F(175'?9T^VN!@
MM1X  !D              ("!2?8! 'AL+W=O<FMS:&5E=',O<VAE970W-BYX
M;6Q02P$"% ,4    " "8A%=4L7(96G,$  #H$0  &0              @($N
M_0$ >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+ 0(4 Q0    ( )B$5U0[
M8Q!))P,   P3   -              "  =@! @!X;"]S='EL97,N>&UL4$L!
M A0#%     @ F(175)>*NQS     $P(   L              ( !*@4" %]R
M96QS+RYR96QS4$L! A0#%     @ F(175#>YQ0CA!0  X#(   \
M     ( !$P8" 'AL+W=O<FMB;V]K+GAM;%!+ 0(4 Q0    ( )B$5U1Z[4YM
M5@(  (XM   :              "  2$, @!X;"]?<F5L<R]W;W)K8F]O:RYX
M;6PN<F5L<U!+ 0(4 Q0    ( )B$5U15J+EG$@(  ',L   3
M  "  :\. @!;0V]N=&5N=%]4>7!E<UTN>&UL4$L%!@    !5 %4 2A<  /(0
$ @    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<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>95
<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>96
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>335</ContextCount>
  <ElementCount>588</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>120</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>00090 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>00100 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>00105 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>00200 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>00300 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>00305 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>00400 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>10101 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>10201 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>10301 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>10401 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>10501 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>10601 - 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-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>10701 - Disclosure - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment</Role>
      <ShortName>Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>10801 - Disclosure - Detail of Other Current Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities</Role>
      <ShortName>Detail of Other Current Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>10901 - Disclosure - Debt Obligations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligations</Role>
      <ShortName>Debt Obligations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>11001 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureLeases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>11101 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>11201 - Disclosure - Employee Benefit Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans</Role>
      <ShortName>Employee Benefit Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>11301 - 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>20</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>11401 - Disclosure - Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity</Role>
      <ShortName>Stockholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>11501 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>11601 - Disclosure - Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation</Role>
      <ShortName>Segment Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>20202 - 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>24</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>30203 - Disclosure - Summary of Significant Accounting Policies and Estimates (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>30303 - 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>26</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>30403 - 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>27</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>30503 - 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>28</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>30603 - 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>29</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>30703 - Disclosure - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables</Role>
      <ShortName>Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>30803 - Disclosure - Detail of Other Current Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables</Role>
      <ShortName>Detail of Other Current Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>30903 - 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>32</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>31003 - 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>33</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>31103 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>31403 - 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>35</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>31503 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>31603 - 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>37</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>40101 - Disclosure - Business and Organization (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails</Role>
      <ShortName>Business and Organization (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>40203 - Disclosure - Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>40205 - Disclosure - Summary of Significant Accounting Policies and Estimates - Risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>40206 - Disclosure - Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails</Role>
      <ShortName>Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>40301 - Disclosure - Revenue from Contracts with Customers - Revenue Recognition (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails</Role>
      <ShortName>Revenue from Contracts with Customers - Revenue Recognition (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>40302 - 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>44</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>40303 - 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>45</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>40304 - 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>46</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>40401 - 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>47</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>40501 - 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>48</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>40502 - 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>49</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>40503 - Disclosure - Acquisitions - Contingent Earn-out Obligation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails</Role>
      <ShortName>Acquisitions - Contingent Earn-out Obligation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>40504 - 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>51</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>40601 - 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>52</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>40602 - 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>53</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails</Role>
      <ShortName>Goodwill and Identifiable Intangible Assets, Net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>40701 - Disclosure - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails</Role>
      <ShortName>Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>40801 - Disclosure - Detail of Other Current Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails</Role>
      <ShortName>Detail of Other Current Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>40901 - 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>57</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>40902 - Disclosure - Debt Obligations - Future Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails</Role>
      <ShortName>Debt Obligations - Future Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>40903 - 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>59</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>41001 - 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>60</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>41002 - 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>61</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>41003 - 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>62</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>41101 - Disclosure - Income Taxes - Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails</Role>
      <ShortName>Income Taxes - Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>41102 - Disclosure - Income Taxes - Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails</Role>
      <ShortName>Income Taxes - Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>41103 - Disclosure - Income Taxes - Provision Changes, Examination (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails</Role>
      <ShortName>Income Taxes - Provision Changes, Examination (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>41104 - Disclosure - Income Taxes - Deferred Tax Assets (Liabilities) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails</Role>
      <ShortName>Income Taxes - Deferred Tax Assets (Liabilities) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>41105 - Disclosure - Income Taxes - Loss Carryforwards and Other (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails</Role>
      <ShortName>Income Taxes - Loss Carryforwards and Other (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>41201 - Disclosure - Employee Benefit Plans (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails</Role>
      <ShortName>Employee Benefit Plans (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>41301 - Disclosure - Commitments and Contingencies - Other and Bonds (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails</Role>
      <ShortName>Commitments and Contingencies - Other and Bonds (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>41302 - Disclosure - Commitments and Contingencies - Self-Insurance (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails</Role>
      <ShortName>Commitments and Contingencies - Self-Insurance (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>41401 - 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>71</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>41402 - Disclosure - Stockholders' Equity - Anti-Dilutive Stock Options (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails</Role>
      <ShortName>Stockholders' Equity - Anti-Dilutive Stock Options (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>41403 - 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>73</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>41501 - Disclosure - Stock-Based Compensation - Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails</Role>
      <ShortName>Stock-Based Compensation - Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>41502 - Disclosure - Stock-Based Compensation - Stock Option Plan Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails</Role>
      <ShortName>Stock-Based Compensation - Stock Option Plan Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>41503 - Disclosure - Stock-Based Compensation - Fair Value Assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails</Role>
      <ShortName>Stock-Based Compensation - Fair Value Assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="fix-20211231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>41601 - 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>77</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" original="fix-20211231x10k.htm">fix-20211231x10k.htm</File>
    <File>fix-20211231.xsd</File>
    <File>fix-20211231_cal.xml</File>
    <File>fix-20211231_def.xml</File>
    <File>fix-20211231_lab.xml</File>
    <File>fix-20211231_pre.xml</File>
    <File>fix-20211231xex21d1.htm</File>
    <File>fix-20211231xex23d1.htm</File>
    <File>fix-20211231xex23d2.htm</File>
    <File>fix-20211231xex31d1.htm</File>
    <File>fix-20211231xex31d2.htm</File>
    <File>fix-20211231xex32d1.htm</File>
    <File>fix-20211231xex32d2.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>fix-20211231x10k002.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1071">http://fasb.org/us-gaap/2021-01-31</BaseTaxonomy>
    <BaseTaxonomy items="40">http://xbrl.sec.gov/dei/2021q4</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>99
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "fix-20211231x10k.htm": {
   "axisCustom": 3,
   "axisStandard": 36,
   "contextCount": 335,
   "dts": {
    "calculationLink": {
     "local": [
      "fix-20211231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "fix-20211231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "fix-20211231x10k.htm"
     ]
    },
    "labelLink": {
     "local": [
      "fix-20211231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "fix-20211231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "fix-20211231.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/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd",
      "https://xbrl.sec.gov/country/2021/country-2021.xsd",
      "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd"
     ]
    }
   },
   "elementCount": 822,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2021-01-31": 14,
    "http://www.comfortsystemsusa.com/20211231": 5,
    "http://xbrl.sec.gov/dei/2021q4": 4,
    "total": 23
   },
   "keyCustom": 101,
   "keyStandard": 487,
   "memberCustom": 66,
   "memberStandard": 50,
   "nsprefix": "fix",
   "nsuri": "http://www.comfortsystemsusa.com/20211231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "00090 - Document - Document and Entity Information",
     "role": "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation",
     "shortName": "Document and Entity Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10301 - Disclosure - Revenue from Contracts with Customers",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers",
     "shortName": "Revenue from Contracts with Customers",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10401 - Disclosure - Fair Value Measurements",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10501 - Disclosure - Acquisitions",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions",
     "shortName": "Acquisitions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10701 - Disclosure - Property and Equipment",
     "role": "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment",
     "shortName": "Property and Equipment",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10801 - Disclosure - Detail of Other Current Liabilities",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities",
     "shortName": "Detail of Other Current Liabilities",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10901 - Disclosure - Debt Obligations",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations",
     "shortName": "Debt Obligations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11001 - Disclosure - Leases",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11101 - Disclosure - Income Taxes",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes",
     "shortName": "Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11201 - Disclosure - Employee Benefit Plans",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans",
     "shortName": "Employee Benefit Plans",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11301 - Disclosure - Commitments and Contingencies",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies",
     "shortName": "Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11401 - Disclosure - Stockholders' Equity",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity",
     "shortName": "Stockholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11501 - Disclosure - Stock-Based Compensation",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation",
     "shortName": "Stock-Based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11601 - Disclosure - Segment Information",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation",
     "shortName": "Segment Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "20202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies",
     "shortName": "Summary of Significant Accounting Policies and Estimates (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30203 - Disclosure - Summary of Significant Accounting Policies and Estimates (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables",
     "shortName": "Summary of Significant Accounting Policies and Estimates (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:ScheduleOfContractsInProgressTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30303 - Disclosure - Revenue from Contracts with Customers (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables",
     "shortName": "Revenue from Contracts with Customers (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:ScheduleOfContractsInProgressTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30403 - Disclosure - Fair Value Measurements (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30503 - Disclosure - Acquisitions (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables",
     "shortName": "Acquisitions (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_UOCWbTYZs0yIlslp_rKjWA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30703 - Disclosure - Property and Equipment (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables",
     "shortName": "Property and Equipment (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30803 - Disclosure - Detail of Other Current Liabilities (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables",
     "shortName": "Detail of Other Current Liabilities (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30903 - Disclosure - Debt Obligations (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables",
     "shortName": "Debt Obligations (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31003 - Disclosure - Leases (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31103 - Disclosure - Income Taxes (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables",
     "shortName": "Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31403 - Disclosure - Stockholders' Equity (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables",
     "shortName": "Stockholders' Equity (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31503 - Disclosure - Stock-Based Compensation (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables",
     "shortName": "Stock-Based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31603 - Disclosure - Segment Information (Tables)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables",
     "shortName": "Segment Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:NatureOfOperations",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "fix:SalesRevenueServicesNetPercentage",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40101 - Disclosure - Business and Organization (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails",
     "shortName": "Business and Organization (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:NatureOfOperations",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_srt_ProductOrServiceAxis_fix_SystemInstallationInNewlyConstructedFacilitiesMember_nNfMdg8TdEK5e20HH-Wk_A",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "fix:SalesRevenueServicesNetPercentage",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InterestPaidNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Cash Flow Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InterestPaidNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CostOfRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40203 - Disclosure - Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Allowance for Credit Losses (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2020_To_12_31_2020_sIwB3aFtQkO1aqs7m6HxOQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:AccountsReceivableChangeInMethodCreditLossExpenseReversal",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:WarrantyPeriodOfLaborAfterServicing",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40205 - Disclosure - Summary of Significant Accounting Policies and Estimates - Risk (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Risk (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:WarrantyPeriodOfLaborAfterServicing",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "fix:InsuranceRecoveryPolicyPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:GainOnBusinessInterruptionInsuranceRecovery",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40206 - Disclosure - Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails",
     "shortName": "Summary of Significant Accounting Policies and Estimates - Insurance Recovery (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "fix:InsuranceRecoveryPolicyPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_10_1_2019_To_12_31_2019_0ySpjrVkdkyi_Yurg0R5wQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:GainOnBusinessInterruptionInsuranceRecovery",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "fix:ScheduleOfContractsInProgressTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ReceivablesLongTermContractsOrPrograms",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40301 - Disclosure - Revenue from Contracts with Customers - Revenue Recognition (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
     "shortName": "Revenue from Contracts with Customers - Revenue Recognition (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "fix:ScheduleOfContractsInProgressTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ReceivablesLongTermContractsOrPrograms",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40302 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
     "shortName": "Revenue from Contracts with Customers - Disaggregation of Revenue (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "lang": null,
      "name": "fix:PercentageOfRevenueFromContractWithCustomer",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerAssetNetCurrent",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40303 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
     "shortName": "Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:RenewableServiceMaintenanceAgreementsTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40304 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
     "shortName": "Revenue from Contracts with Customers - Remaining Performance Obligations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fix:RenewableServiceMaintenanceAgreementsTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40401 - Disclosure - Fair Value Measurements (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
     "shortName": "Fair Value Measurements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40501 - Disclosure - Acquisitions (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
     "shortName": "Acquisitions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_j4zT95kSc0yjE0zoREQv1w",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40502 - Disclosure - Acquisitions - Acquired Intangible Assets (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
     "shortName": "Acquisitions - Acquired Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_zib6Ek_D2UW5TrcoW1eA1g",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity",
     "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2018_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vBw4Xrjj20i9uD3Bta18AQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40503 - Disclosure - Acquisitions - Contingent Earn-out Obligation (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
     "shortName": "Acquisitions - Contingent Earn-out Obligation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_I1bMR4FSykqsPKgXJrynmQ",
      "decimals": null,
      "lang": "en-US",
      "name": "fix:NumberOfMilestoneEarnings",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40504 - Disclosure - Acquisitions - Other Acquisitions (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
     "shortName": "Acquisitions - Other Acquisitions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_ePD_L620t0qJldlR057IiA",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2020_GKhmsr1L50qdkxFBur_K9g",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:GoodwillAcquiredDuringPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillImpairmentLoss",
       "us-gaap:GoodwillImpairmentLoss",
       "p",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:GoodwillImpairmentLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails",
     "shortName": "Goodwill and Identifiable Intangible Assets, Net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_aC11Na-UtkSXBk48xtvyzw",
      "decimals": "2",
      "lang": null,
      "name": "fix:PercentageOfFairValuesInExcessOfCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40701 - Disclosure - Property and Equipment (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
     "shortName": "Property and Equipment (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrualClassifiedCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40801 - Disclosure - Detail of Other Current Liabilities (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails",
     "shortName": "Detail of Other Current Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrualClassifiedCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseLiability",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40901 - Disclosure - Debt Obligations (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
     "shortName": "Debt Obligations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40902 - Disclosure - Debt Obligations - Future Payments (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails",
     "shortName": "Debt Obligations - Future Payments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RepaymentsOfSeniorDebt",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40903 - Disclosure - Debt Obligations - Other (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
     "shortName": "Debt Obligations - Other (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "0",
      "lang": null,
      "name": "fix:DebtInstrumentCovenantFixedChargeCoverageRatio",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockDividendsPerShareDeclared",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockDividendsPerShareDeclared",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseLiability",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41001 - Disclosure - Leases (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
     "shortName": "Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LesseeLeasesPolicyTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-5",
      "lang": null,
      "name": "fix:VariableLeaseAndShortTermLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41002 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
     "shortName": "Leases - Summary of Operating Lease Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41003 - Disclosure - Leases - Maturities of Lease Liabilities (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails",
     "shortName": "Leases - Maturities of Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41101 - Disclosure - Income Taxes - Provision (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails",
     "shortName": "Income Taxes - Provision (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41102 - Disclosure - Income Taxes - Reconciliation (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails",
     "shortName": "Income Taxes - Reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_7_1_2019_To_9_30_2019_zNRK5BKIsE6EkWb207MkPg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationTaxCreditsResearch",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41103 - Disclosure - Income Taxes - Provision Changes, Examination (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails",
     "shortName": "Income Taxes - Provision Changes, Examination (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_9_30_2020_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_M5Au-W_Ubk2x31vaTGd5kw",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41104 - Disclosure - Income Taxes - Deferred Tax Assets (Liabilities) (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails",
     "shortName": "Income Taxes - Deferred Tax Assets (Liabilities) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41105 - Disclosure - Income Taxes - Loss Carryforwards and Other (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails",
     "shortName": "Income Taxes - Loss Carryforwards and Other (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "fix:DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41201 - Disclosure - Employee Benefit Plans (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails",
     "shortName": "Employee Benefit Plans (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "fix:DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_DC8vy9AE4EiUjxOyR6iXJQ",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "fix:LossContingencyLetterOfIntentUnderDisputeNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41301 - Disclosure - Commitments and Contingencies - Other and Bonds (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
     "shortName": "Commitments and Contingencies - Other and Bonds (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_l8sQbNWeCECD3QAbLUsoUA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "fix:LossContingencyLetterOfIntentUnderDisputeNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_item_zJlacm6qsEyG6_7wvmbB7Q",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProfitLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41302 - Disclosure - Commitments and Contingencies - Self-Insurance (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails",
     "shortName": "Commitments and Contingencies - Self-Insurance (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "fix:SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsForRepurchaseOfCommonStock",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41401 - Disclosure - Stockholders' Equity - Incentive and Other (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
     "shortName": "Stockholders' Equity - Incentive and Other (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_5_31_2012_us-gaap_PlanNameAxis_fix_EquityIncentivePlan2012Member_MaOHwMApYky_GP_adjnIHA",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41402 - Disclosure - Stockholders' Equity - Anti-Dilutive Stock Options (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails",
     "shortName": "Stockholders' Equity - Anti-Dilutive Stock Options (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_fix_EmployeeAndNonemployeeStockOptionMember_tkjP4tY_2EK_ShbLCI4Gjg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41403 - Disclosure - Stockholders' Equity - Number of Shares (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
     "shortName": "Stockholders' Equity - Number of Shares (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "As_Of_12_31_2021_gmO__r-d5Uqu10FJiUxEjQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_qGIZk2nKd0anMaA5e4DH1A",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41501 - Disclosure - Stock-Based Compensation - Stock Option Activity (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
     "shortName": "Stock-Based Compensation - Stock Option Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41502 - Disclosure - Stock-Based Compensation - Stock Option Plan Activity (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails",
     "shortName": "Stock-Based Compensation - Stock Option Plan Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_fix_ShareBasedCompensationExercisePriceRangeOneMember_y3ll1VkrwUy9VbTlF7JX5g",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_Z_wHRLQc90mqZzpaMRBCwQ",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41503 - Disclosure - Stock-Based Compensation - Fair Value Assumptions (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
     "shortName": "Stock-Based Compensation - Fair Value Assumptions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_AwardTypeAxis_fix_EmployeeAndNonemployeeStockOptionMember_JmuY6nw_pUG_aK4Srtk2PA",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_2m1YzvH9REKZTKx8kUgpLQ",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41601 - Disclosure - Segment Information (Details)",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
     "shortName": "Segment Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_itJortnFwkOKuZ4dkFGdBQ",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10101 - Disclosure - Business and Organization",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization",
     "shortName": "Business and Organization",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10201 - Disclosure - Summary of Significant Accounting Policies and Estimates",
     "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates",
     "shortName": "Summary of Significant Accounting Policies and Estimates",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "fix-20211231x10k.htm",
      "contextRef": "Duration_1_1_2021_To_12_31_2021_pwSH2798pUSom0RbSdKclQ",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 120,
   "tag": {
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r682",
      "r683",
      "r684"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm ID"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r682",
      "r683",
      "r684"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r682",
      "r683",
      "r684"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r682",
      "r683",
      "r684"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
        "label": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r685"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
        "label": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 2 such as Street or Suite number",
        "label": "Entity Address, Address Line Two"
       }
      }
     },
     "localname": "EntityAddressAddressLine2",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
        "label": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.",
        "label": "Entity [Domain]"
       }
      }
     },
     "localname": "EntityDomain",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
        "label": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r686"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
        "label": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r680"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r687"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_IcfrAuditorAttestationFlag": {
     "auth_ref": [
      "r682",
      "r683",
      "r684"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "localname": "IcfrAuditorAttestationFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_LegalEntityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The set of legal entities associated with a report.",
        "label": "Legal Entity [Axis]"
       }
      }
     },
     "localname": "LegalEntityAxis",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r679"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r681"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "fix_AccruedJobLosses": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the accrual for expenses related to job losses.",
        "label": "Accrued Job Losses",
        "terseLabel": "Accrued job losses"
       }
      }
     },
     "localname": "AccruedJobLosses",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_AllowanceForDoubtfulAccountsReceivableAcquired": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the allowance for receivables acquired in a business acquisition.",
        "label": "Allowance for Doubtful Accounts Receivable Acquired",
        "verboseLabel": "Credit allowance of acquired receivables on the acquisition date"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableAcquired",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_AmendedSeniorRevolvingCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the amended senior revolving credit facility.",
        "label": "Amended senior revolving credit facility"
       }
      }
     },
     "localname": "AmendedSeniorRevolvingCreditFacilityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Amteck Holdco LLC Acquisition and its wholly owned subsidiaries.",
        "label": "Amteck"
       }
      }
     },
     "localname": "AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_AutoLiabilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the auto liability arrangement under self-insurance contract.",
        "label": "Auto Liability"
       }
      }
     },
     "localname": "AutoLiabilityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_BilledContractReceivablesContractsInProgress": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Billed contract receivables, contracts in progress.",
        "label": "Billed Contract Receivables Contracts In Progress",
        "negatedLabel": "Less-Billings to date"
       }
      }
     },
     "localname": "BilledContractReceivablesContractsInProgress",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BuildingAndLeaseholdImprovementsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Building represents facility held for productive use including, but not limited to, office, production, storage and distribution facilities and leasehold improvements represent additions or improvements to assets held under a lease arrangement.",
        "label": "Buildings and leasehold improvements"
       }
      }
     },
     "localname": "BuildingAndLeaseholdImprovementsMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value, as of the balance sheet date, of potential cash payments under the contingent consideration arrangement.",
        "label": "Business Acquisition Contingent Consideration Fair Value at Balance Sheet Date",
        "terseLabel": "Contingent earn-out obligations"
       }
      }
     },
     "localname": "BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationConsiderationTransferredContingentEarnOut": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contingent earn-out payment under business combination.",
        "label": "Business Combination Consideration Transferred Contingent Earn Out",
        "terseLabel": "Estimated fair value of contingent earn-out payments"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredContingentEarnOut",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "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"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business Combination Contingent Consideration Arrangements Earn Out Period.",
        "label": "Business Combination Contingent Consideration Arrangements Earn Out Period",
        "terseLabel": "Contingent earn-out period"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsEarnOutPeriod",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "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"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesBillingsInExcessOfCostsAndEstimatedEarnings",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of intangible assets, including goodwill, acquired at the acquisition date.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Intangibles And Goodwill",
        "terseLabel": "Purchase price allocated to goodwill and identifiable intangible assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangiblesAndGoodwill",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's lease liability current underlying liability under operating lease.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating Lease Liability Current",
        "negatedLabel": "Current operating lease liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityCurrent",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating Lease Liability Noncurrent",
        "negatedLabel": "Long-term operating lease liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Operating Lease Right Of Use Asset",
        "terseLabel": "Operating lease right-of-use asset"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_CashFlowDiscountRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of probable cash flows discount rate.",
        "label": "Cash Flow Discount Rate",
        "terseLabel": "Cash flow discount rate"
       }
      }
     },
     "localname": "CashFlowDiscountRate",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_CashPaidAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Paid [Abstract]",
        "terseLabel": "Cash paid for:"
       }
      }
     },
     "localname": "CashPaidAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_ChangeInRightOfUseAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "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"
       }
      }
     },
     "localname": "ChangeInRightOfUseAssets",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ComputerAndTelephoneEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Computer represents long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems and telephone represents other tangible personal property, nonconsumable in nature, with finite lives.",
        "label": "Computer and telephone equipment"
       }
      }
     },
     "localname": "ComputerAndTelephoneEquipmentMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ConstructionActivitiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to construction activities.",
        "label": "Construction"
       }
      }
     },
     "localname": "ConstructionActivitiesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ConstructionContractorRetainagePayable": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amounts owed to vendors and subcontractors that have been withheld because of retainage provisions in a contract to be paid. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Construction Contractor, Retainage Payable",
        "terseLabel": "Retention payable"
       }
      }
     },
     "localname": "ConstructionContractorRetainagePayable",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ContingentConsiderationObligationsMember": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "ContingentConsiderationObligationsMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ContingentEarnOutObligationToAcquireBusiness": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of contingent earn-out obligation included in purchase price.",
        "label": "Contingent earn-out obligation to acquire business",
        "terseLabel": "Contingent earn-out obligation"
       }
      }
     },
     "localname": "ContingentEarnOutObligationToAcquireBusiness",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ContractReceivablesContractsInProcessNetReceivableLiability": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the net receivable (liability), as of the balance sheet date, for contracts in process in which contracts with billings in excess of costs are netted against contracts with costs in excess of billings.",
        "label": "Contract Receivables Contracts in Process, Net Receivable Liability",
        "totalLabel": "Contracts in progress"
       }
      }
     },
     "localname": "ContractReceivablesContractsInProcessNetReceivableLiability",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in contract with customer assets due to change in conditional versus unconditional.",
        "label": "Contract with Customer, Asset, Increase (Decrease) for Change Due to Conditional Versus Unconditional",
        "verboseLabel": "Other changes in the period"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_CostsInExcessOfBillingsAllowanceForCreditLosses": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit losses on receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.",
        "label": "Costs in Excess Of Billings, Allowance For Credit Losses",
        "terseLabel": "Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)",
        "verboseLabel": "Plus-Costs and estimated earnings in excess of billings credit allowance"
       }
      }
     },
     "localname": "CostsInExcessOfBillingsAllowanceForCreditLosses",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_CumulativeNumberOfCompaniesAcquired": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative number of companies acquired by the entity.",
        "label": "Cumulative Number Of Companies Acquired",
        "terseLabel": "Cumulative number of companies acquired"
       }
      }
     },
     "localname": "CumulativeNumberOfCompaniesAcquired",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the offset related to government or other customer advances received on a contract when the expected advances will be applied in payment to those particular charges of the receivable.",
        "label": "Customer Advances and Progress Payments for Long-term Contract or Program",
        "terseLabel": "Estimated earnings, net of losses"
       }
      }
     },
     "localname": "CustomerAdvancesAndProgressPaymentsForLongTermContractOrProgram",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_CustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information relating to customer.",
        "label": "Customer"
       }
      }
     },
     "localname": "CustomerMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the information pertaining to customer relationships non compete agreements and tradenames.",
        "label": "Customer Relationships Noncompete Agreements and Tradenames"
       }
      }
     },
     "localname": "CustomerRelationshipsNonCompeteAgreementsAndTradenamesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantEffectiveDateAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by date that the debt covenant ratio is applicable.",
        "label": "Debt Covenant Effective Date [Axis]"
       }
      }
     },
     "localname": "DebtCovenantEffectiveDateAxis",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_DebtCovenantEffectiveDateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The period through which the debt covenant ratio is applicable.",
        "label": "Debt Covenant Effective Date [Domain]"
       }
      }
     },
     "localname": "DebtCovenantEffectiveDateDomain",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantRatioAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by different ratios applicable to debt covenants.",
        "label": "Debt Covenant Ratio [Axis]"
       }
      }
     },
     "localname": "DebtCovenantRatioAxis",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_DebtCovenantRatioDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Groups of debt covenant ratio ranges.",
        "label": "Debt Covenant Ratio [Domain]"
       }
      }
     },
     "localname": "DebtCovenantRatioDomain",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantRatioRangeFourMember": {
     "auth_ref": [],
     "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 or greater"
       }
      }
     },
     "localname": "DebtCovenantRatioRangeFourMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantRatioRangeOneMember": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "DebtCovenantRatioRangeOneMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantRatioRangeThreeMember": {
     "auth_ref": [],
     "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 2.50"
       }
      }
     },
     "localname": "DebtCovenantRatioRangeThreeMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtCovenantRatioRangeTwoMember": {
     "auth_ref": [],
     "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 1.75"
       }
      }
     },
     "localname": "DebtCovenantRatioRangeTwoMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for the calculation of the fixed charge coverage ratio.",
        "label": "Debt Instrument Covenant Capital Expenditures Tax Provisions Dividends and Stock Repurchase Payments Used for Calculation of Fixed Charge Coverage Ratio Number of Quarters",
        "terseLabel": "Number of quarters of capital expenditures, tax provision, dividends and stock repurchase payments used for calculation of fixed charge coverage ratio"
       }
      }
     },
     "localname": "DebtInstrumentCovenantCapitalExpendituresTaxProvisionsDividendsAndStockRepurchasePaymentsUsedForCalculationOfFixedChargeCoverageRatioNumberOfQuarters",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_DebtInstrumentCovenantFixedChargeCoverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the ratio of consolidated adjusted earnings before, interest, taxes, depreciation and amortization, less non-financed capital expenditures, tax provision, dividends and amounts used to repurchase stock to the sum of interest expense and scheduled principal payments of indebtedness required to be maintained under the financial covenants.",
        "label": "Debt Instrument Covenant Fixed Charge Coverage Ratio",
        "terseLabel": "Fixed charge coverage ratio"
       }
      }
     },
     "localname": "DebtInstrumentCovenantFixedChargeCoverageRatio",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "fix_DebtInstrumentCovenantLeverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the ratio of consolidated total debt to consolidated adjusted earnings before, interest, taxes, depreciation and amortization required to be maintained under the financial covenants.",
        "label": "Debt Instrument Covenant Leverage Ratio",
        "terseLabel": "Leverage ratio"
       }
      }
     },
     "localname": "DebtInstrumentCovenantLeverageRatio",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "fix_DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA.",
        "label": "Debt Instrument Covenant Net Earnings Used For Calculation Of Credit Facility Adjusted EBITDA, Number Of Quarters",
        "terseLabel": "Number of quarters of net earnings used for the calculation of the credit facility adjusted EBITDA"
       }
      }
     },
     "localname": "DebtInstrumentCovenantNetEarningsUsedForCalculationOfCreditFacilityAdjustedEBITDANumberOfQuarters",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the aggregate purchase price of current acquisition and acquisitions in the preceding twelve month period used for determining the permitted amount of acquisition per transaction under the financial covenants.",
        "label": "Debt Instrument Covenant Other Restrictions Aggregate Purchase Price of Acquisitions",
        "terseLabel": "Aggregate purchase price of current acquisition and acquisitions in the preceding 12 month period for determining permitted amount of acquisition per transaction"
       }
      }
     },
     "localname": "DebtInstrumentCovenantOtherRestrictionsAggregatePurchasePriceOfAcquisitions",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the net leverage ratio as defined in the financial covenants which is used as a basis to determine other restrictions.",
        "label": "Debt Instrument Covenant Other Restrictions Net Leverage Ratio",
        "terseLabel": "Net leverage ratio used as basis for other restrictions"
       }
      }
     },
     "localname": "DebtInstrumentCovenantOtherRestrictionsNetLeverageRatio",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "fix_DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of acquisition per transaction permitted under the financial covenants.",
        "label": "Debt Instrument Covenant Other Restrictions Permitted Acquisition Amount Per Transaction",
        "terseLabel": "Permitted amount of acquisitions per transaction"
       }
      }
     },
     "localname": "DebtInstrumentCovenantOtherRestrictionsPermittedAcquisitionAmountPerTransaction",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DebtInstrumentFinancialCovenantsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument Financial Covenants [Abstract]",
        "terseLabel": "Principal financial covenants"
       }
      }
     },
     "localname": "DebtInstrumentFinancialCovenantsAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_DebtInstrumentInterestRateOptionsNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of interest rate options.",
        "label": "Debt Instrument Interest Rate Options Number",
        "terseLabel": "Number of interest rate options"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateOptionsNumber",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_DebtInstrumentMarketRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the market rate relating to interest options under the Facility.",
        "label": "Debt Instrument Market Rate",
        "terseLabel": "Market rate (as a percent)"
       }
      }
     },
     "localname": "DebtInstrumentMarketRate",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of Credit Facility Adjusted EBITDA for determining additional margins.",
        "label": "Debt Instrument Term of Earnings before Interest Tax Depreciation and Amortization for Determination of Additional Margins",
        "terseLabel": "Period of Credit Facility Adjusted EBITDA for determining additional margins"
       }
      }
     },
     "localname": "DebtInstrumentTermOfEarningsBeforeInterestTaxDepreciationAndAmortizationForDeterminationOfAdditionalMargins",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DebtInstrumentVariableRateBaseRateMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The base rate used to calculate the variable interest rate of the debt instrument.",
        "label": "Base rate"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateBaseRateMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentVariableRateFederalFundsRateMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The federal funds rate used to calculate the variable interest rate of the debt instrument.",
        "label": "Federal Funds Rate"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateFederalFundsRateMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentVariableRateOneMonthLIBORMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The one-month LIBOR rate used to calculate the variable interest rate of the debt instrument.",
        "label": "One-month LIBOR"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateOneMonthLIBORMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentVariableRateSecondaryClassificationAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The secondary classification of alternative reference rates that may be used to calculate the variable interest rate of the debt instrument.",
        "label": "Debt Instrument Variable Rate Secondary Classification [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateSecondaryClassificationAxis",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_DebtInstrumentVariableRateSecondaryClassificationDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the secondary classification of alternative reference rate that is used to calculate the variable interest rate of the debt instrument.",
        "label": "Debt Instrument Variable Rate Secondary Classification [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateSecondaryClassificationDomain",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentVariableRateSixMonthLIBORMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The six-month LIBOR rate used to calculate the variable interest rate of the debt instrument.",
        "label": "Six-month LIBOR"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateSixMonthLIBORMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Wells Fargo Bank, N.A. Prime Rate used to calculate the variable interest rate of the debt instrument.",
        "label": "Wells Fargo Bank, N.A. Prime Rate"
       }
      }
     },
     "localname": "DebtInstrumentVariableRateWellsFargoBankNAPrimeRateMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_DeferredAcquisitionPayments": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred acquisition payments.",
        "label": "Deferred Acquisition Payments",
        "negatedLabel": "Deferred acquisition payments"
       }
      }
     },
     "localname": "DeferredAcquisitionPayments",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DeferredTaxAssetsLeaseLiability": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from lease liabilities.",
        "label": "Deferred Tax Assets, Lease Liability",
        "terseLabel": "Lease liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsLeaseLiability",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DeferredTaxLiabilitiesLongTermContracts": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to long-term contracts.",
        "label": "Deferred Tax Liabilities Long Term Contracts",
        "negatedLabel": "Long-term contracts"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesLongTermContracts",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the maximum age under which certain individuals are entitled to fixed annual payments.",
        "label": "Defined Benefit Plan Maximum Age in which Certain Individuals are Entitled to Fixed Annual Payments",
        "terseLabel": "Maximum age under which certain individuals are entitled to fixed annual payments"
       }
      }
     },
     "localname": "DefinedBenefitPlanMaximumAgeInWhichCertainIndividualsAreEntitledToFixedAnnualPayments",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period in which certain individuals are entitled to fixed annual payments.",
        "label": "Defined Benefit Plan Period in which Certain Individuals are Entitled to Fixed Annual Payments",
        "terseLabel": "Period in which certain individuals are entitled to fixed annual payments"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodInWhichCertainIndividualsAreEntitledToFixedAnnualPayments",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of completed service over which 50 percent of benefits are vested.",
        "label": "Defined Benefit Plan Period of Completed Service over which 50 Percent of Benefits are Vested",
        "terseLabel": "Period of completed service over which 50% of benefits are vested"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodOfCompletedServiceOverWhich50PercentOfBenefitsAreVested",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of completed service over which 75 percent of benefits are vested.",
        "label": "Defined Benefit Plan Period of Completed Service over which 75 Percent of Benefits are Vested",
        "terseLabel": "Period of completed service over which 75% of benefits are vested"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodOfCompletedServiceOverWhich75PercentOfBenefitsAreVested",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of service over which benefits are fully vested.",
        "label": "Defined Benefit Plan Period of Service over which Benefits are Fully Vested",
        "terseLabel": "Period of service over which benefits are fully vested"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodOfServiceOverWhichBenefitsAreFullyVested",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the portion of benefits vesting after fifteen years of completed service.",
        "label": "Defined Benefit Plan Period Portion of Benefits Vesting after Fifteen Years of Completed Service",
        "terseLabel": "Portion of benefits vesting after fifteen years of completed service (as a percent)"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterFifteenYearsOfCompletedService",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the portion of benefits vesting after ten years of completed service.",
        "label": "Defined Benefit Plan Period Portion of Benefits Vesting after Ten Years of Completed Service",
        "terseLabel": "Portion of benefits vesting after ten years of completed service (as a percent)"
       }
      }
     },
     "localname": "DefinedBenefitPlanPeriodPortionOfBenefitsVestingAfterTenYearsOfCompletedService",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_DefinedContributionPlanAmountPayable": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount payable to defined contribution plan.",
        "label": "Defined Contribution Plan Amount Payable",
        "terseLabel": "Amount payable to plan"
       }
      }
     },
     "localname": "DefinedContributionPlanAmountPayable",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the maximum percentage of employee gross pay, by the terms of the plan, that the employer may contribute to a defined contribution plan.",
        "label": "Defined Contribution Plan Maximum Annual Contribution Per Employee by Employer Percent",
        "terseLabel": "Percentage of contributions of covered employees' salaries or wages"
       }
      }
     },
     "localname": "DefinedContributionPlanMaximumAnnualContributionPerEmployeeByEmployerPercent",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_DerivativeInstrumentNotionalAmount": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument notional amount.",
        "label": "Derivative Instrument Notional Amount",
        "terseLabel": "Notional amount"
       }
      }
     },
     "localname": "DerivativeInstrumentNotionalAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_DerivativeNetLossOnDerivative": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of net loss recognized on derivative.",
        "label": "Derivative Net Loss On Derivative",
        "terseLabel": "Net loss on derivative"
       }
      }
     },
     "localname": "DerivativeNetLossOnDerivative",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_EducationMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This members stands for education.",
        "label": "Education"
       }
      }
     },
     "localname": "EducationMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EffectOfUsingWeightedAverageCommonSharesOutstanding": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "EffectOfUsingWeightedAverageCommonSharesOutstanding",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "fix_ElectricalContractorNorthCarolinaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to electrical contractor North Carolina.",
        "label": "Electrical Contractor North Carolina"
       }
      }
     },
     "localname": "ElectricalContractorNorthCarolinaMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ElectricalServicesIndustryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the information pertaining to electrical services industry.",
        "label": "Electrical Services Industry"
       }
      }
     },
     "localname": "ElectricalServicesIndustryMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ElectricalServicesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for the electrical services.",
        "label": "Electrical Services"
       }
      }
     },
     "localname": "ElectricalServicesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployeeAndNonemployeeStockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "An arrangement whereby an employee and other than employee is entitled to receive in the future, subject to vesting and other restrictions, a number of shares in the entity at a specified price, as defined in the agreement. Although there are variations, normally, after vesting, when an option is exercised, the employee-holder and non-employee-holder pays the strike value in cash to the issuing employer-entity and receives equity shares. The equity shares can be sold into the market for cash at the current market price without restriction.",
        "label": "Stock Options"
       }
      }
     },
     "localname": "EmployeeAndNonemployeeStockOptionMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployeeMedicalMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employee medical arrangement under self-insurance contract.",
        "label": "Employee Medical"
       }
      }
     },
     "localname": "EmployeeMedicalMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployeeMedicalPlanOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employee medical arrangement for plan one under self-insurance contract.",
        "label": "Employee Medical- Plan One"
       }
      }
     },
     "localname": "EmployeeMedicalPlanOneMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployeeMedicalPlanThreeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employee medical arrangement for a third plan under self-insurance contract.",
        "label": "Employee Medical - Plan Three"
       }
      }
     },
     "localname": "EmployeeMedicalPlanThreeMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployeeMedicalPlanTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employee medical arrangement for other plan under self-insurance contract.",
        "label": "Employee Medical- Plan Two"
       }
      }
     },
     "localname": "EmployeeMedicalPlanTwoMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employer's liability, general liability and auto liability arrangement under self-insurance contract.",
        "label": "Employer's Liability, General Liability and Auto Liability"
       }
      }
     },
     "localname": "EmployersLiabilityGeneralLiabilityAndAutoLiabilityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EmployersLiabilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the employer's liability arrangement under self-insurance contract.",
        "label": "Employer's Liability"
       }
      }
     },
     "localname": "EmployersLiabilityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_EquityIncentivePlan2012Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the 2012 Equity Incentive Plan of the entity.",
        "label": "2012 Equity Incentive Plan"
       }
      }
     },
     "localname": "EquityIncentivePlan2012Member",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ExistingBuildingConstructionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for existing building construction.",
        "label": "Existing Building Construction"
       }
      }
     },
     "localname": "ExistingBuildingConstructionMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_GainRecordedAsReductionInCostOfServicesExpense": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents amount of gain recorded as reduction in cost of services expense.",
        "label": "Gain Recorded As A Reduction In Cost Of Services Expense",
        "terseLabel": "Gain recorded as reduction in cost of services expense"
       }
      }
     },
     "localname": "GainRecordedAsReductionInCostOfServicesExpense",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_GainRecordedAsReductionInSga": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gain recorded as reduction in SG&amp;A, amount.",
        "label": "Gain Recorded As Reduction In Sga",
        "terseLabel": "Gain recorded as reduction in SG&amp;A"
       }
      }
     },
     "localname": "GainRecordedAsReductionInSga",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_GovernmentCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Organization that is the governing authority of a community.",
        "label": "Government"
       }
      }
     },
     "localname": "GovernmentCustomerMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_HealthcareSectorCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sector of the economy consisting of companies engaged in healthcare-related business activities.",
        "label": "Healthcare"
       }
      }
     },
     "localname": "HealthcareSectorCustomerMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_IncomeTaxReconciliationSection179dDeduction": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Income tax reconciliation section 179D deduction.",
        "label": "Income Tax Reconciliation Section 179d Deduction",
        "negatedLabel": "179D deduction"
       }
      }
     },
     "localname": "IncomeTaxReconciliationSection179dDeduction",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Income tax reconciliation section 179D deduction, net of tax contingencies.",
        "label": "Income Tax Reconciliation Section 179d Deduction Net Of Tax Contingencies",
        "negatedLabel": "179D deduction",
        "terseLabel": "179D deduction"
       }
      }
     },
     "localname": "IncomeTaxReconciliationSection179dDeductionNetOfTaxContingencies",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_IndustrialPropertyCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Building designed to house industrial operations and provide the necessary conditions for the operation of industrial equipment.",
        "label": "Industrial"
       }
      }
     },
     "localname": "IndustrialPropertyCustomerMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_InsuranceRecoveryPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for insurance recovery.",
        "label": "Insurance Recovery, Policy [Policy Text Block]",
        "terseLabel": "Insurance Recovery"
       }
      }
     },
     "localname": "InsuranceRecoveryPolicyPolicyTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_InterestExpenseOnInterestRateSwaps": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest expense on interest rate swaps.",
        "label": "Interest Expense on Interest Rate Swaps",
        "terseLabel": "Interest expense on interest rate swaps"
       }
      }
     },
     "localname": "InterestExpenseOnInterestRateSwaps",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_InterestIncomeOnIncomeTaxRefundsNet": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net amount of interest income (expense) on income tax refunds.",
        "label": "interest Income on Income Tax Refunds, Net",
        "terseLabel": "Interest on income tax refund"
       }
      }
     },
     "localname": "InterestIncomeOnIncomeTaxRefundsNet",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_IveyMechanicalCompanyLlcMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to acquisition of Ivey Mechanical Company.",
        "label": "Ivey"
       }
      }
     },
     "localname": "IveyMechanicalCompanyLlcMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_LetterOfCreditFeesAmount": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of fees associated with the letter of credit.",
        "label": "Letter of Credit Fees Amount",
        "terseLabel": "Letter of credit fees"
       }
      }
     },
     "localname": "LetterOfCreditFeesAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_LetterOfCreditFeesPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the fees for the letter of credit facility, expressed as a percent based on the ratio of consolidated total indebtedness to credit facility adjusted EBITDA, as defined in the credit agreement.",
        "label": "Letter of Credit Fees Percentage",
        "terseLabel": "Letter of credit fees (as a percent)"
       }
      }
     },
     "localname": "LetterOfCreditFeesPercentage",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_LiabilitiesDueToFormerOwnersCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the carrying amount as of the balance sheet date of liabilities due to former owners. For classified balance sheets, represents the current portion of such liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Liabilities Due to Former Owners Current",
        "terseLabel": "Liabilities due to former owners"
       }
      }
     },
     "localname": "LiabilitiesDueToFormerOwnersCurrent",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_LifeInsuranceContractsFaceAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "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"
       }
      }
     },
     "localname": "LifeInsuranceContractsFaceAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_LifeInsuranceContractsNumberOfEmployeesCovered": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "LifeInsuranceContractsNumberOfEmployeesCovered",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_LineOfCreditBorrowingCapacityAccordionOption": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accordion option on credit facility per terms of the agreement.",
        "label": "Line of credit borrowing capacity accordion option"
       }
      }
     },
     "localname": "LineOfCreditBorrowingCapacityAccordionOption",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_LossContingencyDamagesStatedValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The value (monetary amount) of the award the defendant stated in the legal matter.",
        "label": "Loss Contingency, Damages Stated, Value",
        "terseLabel": "Damages stated"
       }
      }
     },
     "localname": "LossContingencyDamagesStatedValue",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_LossContingencyLetterOfIntentUnderDisputeNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total number of letter of intent executed to perform subcontract work under dispute pertaining to a loss contingency during the period.",
        "label": "Loss Contingency, Letter Of Intent Under Dispute, Number",
        "terseLabel": "Letter of intent under dispute"
       }
      }
     },
     "localname": "LossContingencyLetterOfIntentUnderDisputeNumber",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_LossContingencySuretyAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency Surety [Abstract]",
        "terseLabel": "Surety"
       }
      }
     },
     "localname": "LossContingencySuretyAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_MaintenanceRepairAndReplacementServiceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to maintenance, repair and replacement services.",
        "label": "Maintenance, repair and replacement services"
       }
      }
     },
     "localname": "MaintenanceRepairAndReplacementServiceMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MarketRatesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Market Rates [Abstract]",
        "terseLabel": "Market rates relating to interest options"
       }
      }
     },
     "localname": "MarketRatesAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_MechanicalContractorIndianaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to acquisition of Indiana mechanical contractor who is temporary staffing company.",
        "label": "Mechanical Contractor Indiana"
       }
      }
     },
     "localname": "MechanicalContractorIndianaMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MechanicalContractorKentuckyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to acquisition of Kentucky mechanical contractor who indulged in service and control business.",
        "label": "Mechanical Contractor Kentucky"
       }
      }
     },
     "localname": "MechanicalContractorKentuckyMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MechanicalContractorUtahMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Utah mechanical contractor.",
        "label": "Mechanical Contractor Utah"
       }
      }
     },
     "localname": "MechanicalContractorUtahMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MechanicalServicesIndustryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the information pertaining to mechanical services industry.",
        "label": "Mechanical Services Segment"
       }
      }
     },
     "localname": "MechanicalServicesIndustryMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MechanicalServicesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Mechanical Services [Member]",
        "label": "Mechanical Services"
       }
      }
     },
     "localname": "MechanicalServicesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MepHoldingCo.IncMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to MEP Holding Co., Inc.",
        "label": "MEP Holdings"
       }
      }
     },
     "localname": "MepHoldingCo.IncMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of employees who are union members and have participated in the multi-employer pension plans.",
        "label": "Multi Employer Pension Plan Number of Employees who are Union Members",
        "terseLabel": "Number of employees who are union members"
       }
      }
     },
     "localname": "MultiEmployerPensionPlanNumberOfEmployeesWhoAreUnionMembers",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_MultiFamilyAndResidentialMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for multi family and residential.",
        "label": "Multi-Family and Residential"
       }
      }
     },
     "localname": "MultiFamilyAndResidentialMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_NewConstructionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for new construction.",
        "label": "New Construction"
       }
      }
     },
     "localname": "NewConstructionMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_NumberOfMilestoneEarnings": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of milestones.",
        "label": "Number of Milestone Earnings",
        "terseLabel": "Number of milestones"
       }
      }
     },
     "localname": "NumberOfMilestoneEarnings",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_NumberOfOptionsToRenew": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of options to renew.",
        "label": "Number of Options to Renew",
        "terseLabel": "Number of options to renew"
       }
      }
     },
     "localname": "NumberOfOptionsToRenew",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_OfficeBuildingCustomerMember": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "OfficeBuildingCustomerMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_OmnibusIncentivePlan2017Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for 2017 Omnibus Incentive Plan.",
        "label": "2017 Omnibus Incentive Plan"
       }
      }
     },
     "localname": "OmnibusIncentivePlan2017Member",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_PaymentsOfFinancingCostsTermLoan": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Payments Of Financing Costs Term Loan",
        "label": "Payments Of Financing Costs Term Loan",
        "terseLabel": "Payments of financing costs term loan"
       }
      }
     },
     "localname": "PaymentsOfFinancingCostsTermLoan",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_PaymentsReceivedTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of days in which the entity receives payment from customers.",
        "label": "Payments Received Term",
        "terseLabel": "Payments received term (in days)"
       }
      }
     },
     "localname": "PaymentsReceivedTerm",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_PercentageOfBusinessWhichHasRequiredBonds": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "PercentageOfBusinessWhichHasRequiredBonds",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_PercentageOfFairValuesInExcessOfCarryingValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of fair value in excess of carrying value.",
        "label": "Percentage of Fair Values in Excess of Carrying Value",
        "terseLabel": "Fair values in excess of carrying value (as a percent)"
       }
      }
     },
     "localname": "PercentageOfFairValuesInExcessOfCarryingValue",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_PercentageOfRevenueFromContractWithCustomer": {
     "auth_ref": [],
     "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)"
       }
      }
     },
     "localname": "PercentageOfRevenueFromContractWithCustomer",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_PercentageOfUnitsMeasuredOnPredeterminedEPS": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the measurements of units based predetermined EPS.",
        "label": "Percentage of Units Measured on Predetermined EPS",
        "terseLabel": "Percentage of units measured on stock price based on pre determined EPS"
       }
      }
     },
     "localname": "PercentageOfUnitsMeasuredOnPredeterminedEPS",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the measurements of units based on relative group of peer EPS.",
        "label": "Percentage of Units Measured on Stock Price Relative to Group of Peer",
        "terseLabel": "Percentage of units measured on stock price relative to peer group"
       }
      }
     },
     "localname": "PercentageOfUnitsMeasuredOnStockPriceRelativeToGroupOfPeer",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_PerformanceMultiplierForDollarDenominatedAwardGranted": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the performance multiplier for dollar-denominated award granted at target.",
        "label": "Performance Multiplier for Dollar Denominated Award Granted",
        "terseLabel": "Performance measures for dollar denominated award granted"
       }
      }
     },
     "localname": "PerformanceMultiplierForDollarDenominatedAwardGranted",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "fix_PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period for which shareholder return is compared with peer group for units determined by EPS performance.",
        "label": "Period for which Shareholder Return is Compared with Peer Group for Units Determined by EPS Performance",
        "terseLabel": "Period for which shareholder return is compared with peer group for units determined by EPS performance"
       }
      }
     },
     "localname": "PeriodForWhichShareholderReturnIsComparedWithPeerGroupForUnitsDeterminedByEPSPerformance",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_ReceivableDueTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The payment terms for receivables in days.",
        "label": "Receivable Due Term",
        "terseLabel": "Receivable payment terms (in days)"
       }
      }
     },
     "localname": "ReceivableDueTerm",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_ReclassificationOfAllowanceForCreditLosses": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss reclassified into other liabilities during the period.",
        "label": "Reclassification Of Allowance For Credit Losses",
        "terseLabel": "Reclass to other current liabilities"
       }
      }
     },
     "localname": "ReclassificationOfAllowanceForCreditLosses",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "n/a",
        "label": "Reconciliation Of Earnings Before Interest Tax Depreciation And Amortization to Net Income [Abstract]",
        "terseLabel": "Reconciliation of Credit Facility Adjusted EBITDA to net income"
       }
      }
     },
     "localname": "ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_RenewableServiceMaintenanceAgreementsTerm": {
     "auth_ref": [],
     "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)"
       }
      }
     },
     "localname": "RenewableServiceMaintenanceAgreementsTerm",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents repayment in terms of percentage of original aggregate principal amount.",
        "label": "Repayment In Terms Of Percentage Of Original Aggregate Principal Amount",
        "terseLabel": "Repayment in terms of percentage of original aggregate principal amount"
       }
      }
     },
     "localname": "RepaymentInTermsOfPercentageOfOriginalAggregatePrincipalAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "R&amp;D tax credit and tax deduction, 179d.",
        "label": "R&amp;D Tax Credit and 179D Deduction"
       }
      }
     },
     "localname": "ResearchAndDevelopmentTaxCreditAnd179DeductionMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_RestrictedStockAndRestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Shares and stock units that an entity has not yet issued because the agreed-upon consideration, such as employee services, has not yet been received.",
        "label": "Restricted Stock and Restricted Stock Units"
       }
      }
     },
     "localname": "RestrictedStockAndRestrictedStockUnitsRSUMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_RetailRestaurantsAndEntertainmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for retail, restaurants and entertainment",
        "label": "Retail, Restaurants and Entertainment"
       }
      }
     },
     "localname": "RetailRestaurantsAndEntertainmentMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_RetentionProvisionsConstructionContractsHoldingPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period during which progress billings or the contract price can be withheld by customers until after the completion of work on the project.",
        "label": "Retention Provisions Construction Contracts Holding Period",
        "terseLabel": "Period during which progress billings or contract price can be withheld until completion of work"
       }
      }
     },
     "localname": "RetentionProvisionsConstructionContractsHoldingPeriod",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_SalesRevenueMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents total revenue during the period when it serves as a benchmark in a concentration of risk calculation.",
        "label": "Revenue"
       }
      }
     },
     "localname": "SalesRevenueMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_SalesRevenueServicesNetPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of net services revenue to total net revenue from the services rendered as of the year end.",
        "label": "Sales Revenue Services Net Percentage",
        "terseLabel": "Percentage of revenue attributable to services"
       }
      }
     },
     "localname": "SalesRevenueServicesNetPercentage",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_ScenarioCovenantRequirementMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Domain member used to indicate the requirements per the terms of the debt agreement.",
        "label": "Covenant Requirement"
       }
      }
     },
     "localname": "ScenarioCovenantRequirementMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ScheduleOfAdditionalMarginsTableTextBlock": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "ScheduleOfAdditionalMarginsTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of classification of deferred tax assets and liabilities recognized in the entity's statement of financial position.",
        "label": "Schedule of Balance Sheet Presentation of Deferred Tax Assets and Liabilities Table [Text Block]",
        "verboseLabel": "Schedule of deferred income tax assets and liabilities included in the consolidated balance sheets"
       }
      }
     },
     "localname": "ScheduleOfBalanceSheetPresentationOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_ScheduleOfBusinessAndOrganizationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business and Organization [Line Items]",
        "terseLabel": "Business and Organization"
       }
      }
     },
     "localname": "ScheduleOfBusinessAndOrganizationLineItems",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_ScheduleOfBusinessAndOrganizationTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of information related to the business and organization.",
        "label": "Schedule of Business and Organization [Table]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAndOrganizationTable",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_ScheduleOfContractsInProgressTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of contracts in progress.",
        "label": "Schedule of Contracts in Progress [Table Text Block]",
        "terseLabel": "Schedule of contracts in progress"
       }
      }
     },
     "localname": "ScheduleOfContractsInProgressTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_ScheduleOfFloatingInterestRateBasesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of variable rate bases and spreads related to debt covenants.",
        "label": "Schedule of Floating Interest Rate Bases [Table Text Block]",
        "terseLabel": "Schedule of market rates relating to interest options under the Facility"
       }
      }
     },
     "localname": "ScheduleOfFloatingInterestRateBasesTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fix_SelfInsuranceAggregateLossInsuranceCoveredAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of aggregate excess loss coverage above applicable per-incident deductibles for all lines of risk.",
        "label": "Self Insurance Aggregate Loss Insurance Covered Amount",
        "terseLabel": "Amount of excess loss insurance covered"
       }
      }
     },
     "localname": "SelfInsuranceAggregateLossInsuranceCoveredAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of loss fully insured above per-incident deductible amount under insurance arrangements under various risks.",
        "label": "Self Insurance Amount of Loss Fully Insured above Deductible Coverage Amount",
        "terseLabel": "Amount of loss fully insured above per-incident deductible amount"
       }
      }
     },
     "localname": "SelfInsuranceAmountOfLossFullyInsuredAboveDeductibleCoverageAmount",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_SelfInsuranceDeductibleAmountPerIncident": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of risk retained by the entity per incident before the insurance arrangement begins to provide coverage under various risks.",
        "label": "Self Insurance Deductible Amount Per Incident",
        "terseLabel": "Per incident deductible amount"
       }
      }
     },
     "localname": "SelfInsuranceDeductibleAmountPerIncident",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_SelfInsuranceDeductibleAmountPerPersonPerPolicy": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of risk retained by the entity per person, per policy before the insurance arrangement begins to provide coverage under various risks.",
        "label": "Self Insurance Deductible Amount Per Person Per Policy",
        "terseLabel": "Per person, per policy deductible amount"
       }
      }
     },
     "localname": "SelfInsuranceDeductibleAmountPerPersonPerPolicy",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_SelfInsuranceNumberOfMedicalPlans": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of medical plans.",
        "label": "Self Insurance Number of Medical Plans",
        "terseLabel": "Number of medical plans"
       }
      }
     },
     "localname": "SelfInsuranceNumberOfMedicalPlans",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_ServiceCallsMaintenanceAndMonitoringMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for service calls, maintenance and monitoring.",
        "label": "Service Calls, Maintenance and Monitoring"
       }
      }
     },
     "localname": "ServiceCallsMaintenanceAndMonitoringMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ServiceProjectsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This member stands for service projects.",
        "label": "Service Projects"
       }
      }
     },
     "localname": "ServiceProjectsMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ServicesActivityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Service activity.",
        "label": "Service"
       }
      }
     },
     "localname": "ServicesActivityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Based Compensation Arrangement by Share Based Payment Award, Options Nonvested [Roll Forward]",
        "terseLabel": "Nonvested Options, Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonvestedRollForward",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the sum of age and years of service for accelerated vesting of certain stock options and restricted stock awards.",
        "label": "Share Based Compensation Arrangement by Share Based Payment Award sum of age and years of Service for Accelerated Vesting on Retirement",
        "terseLabel": "Sum of age and years of service for accelerated vesting on retirement of certain stock options and restricted stock awards"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSumOfAgeAndYearsOfServiceForAcceleratedVestingOnRetirement",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_ShareBasedCompensationExercisePriceRangeOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the exercise price range from 16.15 dollars to 30.36 dollars per share.",
        "label": "$16.15 - $30.36"
       }
      }
     },
     "localname": "ShareBasedCompensationExercisePriceRangeOneMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ShareBasedCompensationExercisePriceRangeThreeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the exercise price range from 16.15 dollars to 54.38 dollars per share.",
        "label": "$16.15 - $54.38"
       }
      }
     },
     "localname": "ShareBasedCompensationExercisePriceRangeThreeMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ShareBasedCompensationExercisePriceRangeTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the exercise price range from 36.25 dollars to 54.38 dollars per share.",
        "label": "$36.25 - $54.38"
       }
      }
     },
     "localname": "ShareBasedCompensationExercisePriceRangeTwoMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the fair market value of liabilities of performance share awards, as of the balance sheet date.",
        "label": "Share Based Compensation Performance Shares Award Calculated Fair Market Value",
        "terseLabel": "Calculated fair market value"
       }
      }
     },
     "localname": "ShareBasedCompensationPerformanceSharesAwardCalculatedFairMarketValue",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Based Compensation Shares Authorized under Stock Option Plans Exercise Price Range Outstanding Options [Abstract]",
        "terseLabel": "Options Outstanding"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the fair market value of current liabilities of performance share awards, as of the balance sheet date.",
        "label": "ShareBased Compensation Performance Shares Award Calculated Fair Market Value Current Portion",
        "terseLabel": "Value of PSUs granted"
       }
      }
     },
     "localname": "SharebasedCompensationPerformanceSharesAwardCalculatedFairMarketValueCurrentPortion",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted and Performance Stock Awards.",
        "label": "Stock Issued During Period, Shares, Restricted And Performance Stock Award Gross",
        "terseLabel": "Issuance of restricted stock &amp; performance stock (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate value of stock related to Restricted and Performance Stock Awards issued during the period.",
        "label": "Stock Issued During Period Value Restricted And Performance Stock Award Gross",
        "terseLabel": "Issuance of restricted stock &amp; performance stock"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_StockRepurchaseProgram2007Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the March 2007 stock repurchase program.",
        "label": "Stock Repurchase Program 2007"
       }
      }
     },
     "localname": "StockRepurchaseProgram2007Member",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The additional number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan",
        "label": "Stock Repurchase Program, Additional Number of Shares Authorized to be Repurchased",
        "terseLabel": "Additional number of shares authorized for repurchase"
       }
      }
     },
     "localname": "StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "fix_SubordinateDebtAndPromissoryNoteMember": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "SubordinateDebtAndPromissoryNoteMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_SupplementalInformationRelatedToLeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "No definition available.",
        "label": "Supplemental Information Related to Leases [Abstract]",
        "terseLabel": "Supplemental information related to leases:"
       }
      }
     },
     "localname": "SupplementalInformationRelatedToLeasesAbstract",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fix_SystemInstallationInNewlyConstructedFacilitiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to installation of systems in newly constructed facilities.",
        "label": "Installation of systems in newly constructed facilities"
       }
      }
     },
     "localname": "SystemInstallationInNewlyConstructedFacilitiesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_TECIndustrialConstructionAndMaintenanceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "T E C Industrial Construction and Maintenance.",
        "label": "TEC"
       }
      }
     },
     "localname": "TECIndustrialConstructionAndMaintenanceMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_TasEnergyIncMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to TAS Energy Inc.",
        "label": "TAS Energy"
       }
      }
     },
     "localname": "TasEnergyIncMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_TaxYears2016To2018Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified as tax year total for 2016-2018.",
        "label": "Total Tax Years 2016-2018"
       }
      }
     },
     "localname": "TaxYears2016To2018Member",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_TermLoanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to term loan member.",
        "label": "Term loan"
       }
      }
     },
     "localname": "TermLoanMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_ThroughMaturityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information through the debt maturity date.",
        "label": "Through maturity"
       }
      }
     },
     "localname": "ThroughMaturityMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_TypesOfPerformanceStockUnits": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of types of performance stock units.",
        "label": "Types of Performance Stock Units",
        "terseLabel": "Types of performance units"
       }
      }
     },
     "localname": "TypesOfPerformanceStockUnits",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "fix_UnbilledAccountsReceivableAllowanceForCreditLoss": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of allowance for credit losses on unbilled receivable.",
        "label": "Unbilled Accounts Receivable, Allowance for Credit Loss",
        "negatedLabel": "Less-Unbilled accounts receivable credit allowance",
        "terseLabel": "Unbilled accounts receivable, allowance for credit losses (in dollars)"
       }
      }
     },
     "localname": "UnbilledAccountsReceivableAllowanceForCreditLoss",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_VariableLeaseAndShortTermLeaseCost": {
     "auth_ref": [],
     "crdr": "debit",
     "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"
       }
      }
     },
     "localname": "VariableLeaseAndShortTermLeaseCost",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Walker TX Holdings, Inc. and its wholly-owned subsidiaries.",
        "label": "Walker"
       }
      }
     },
     "localname": "WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fix_WarrantyPeriodOfLaborAfterServicing": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the labor warranty period after servicing of existing MEP system.",
        "label": "Warranty Period of Labor after Servicing",
        "terseLabel": "Labor warranty period after servicing of existing MEP system"
       }
      }
     },
     "localname": "WarrantyPeriodOfLaborAfterServicing",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fix_WeightedAverageCostOfCapital": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of weighted average cost of capital.",
        "label": "Weighted Average Cost Of Capital",
        "terseLabel": "Weighted average cost of capital"
       }
      }
     },
     "localname": "WeightedAverageCostOfCapital",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "fix_WorkersCompensationMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the workers compensation arrangement under self-insurance contract.",
        "label": "Workers Compensation"
       }
      }
     },
     "localname": "WorkersCompensationMember",
     "nsuri": "http://www.comfortsystemsusa.com/20211231",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ConsolidationItemsAxis": {
     "auth_ref": [
      "r117",
      "r181",
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r201",
      "r205",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r306",
      "r307",
      "r309",
      "r311",
      "r312"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]"
       }
      }
     },
     "localname": "ConsolidationItemsAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ConsolidationItemsDomain": {
     "auth_ref": [
      "r117",
      "r181",
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r201",
      "r205",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r306",
      "r307",
      "r309",
      "r311",
      "r312"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]"
       }
      }
     },
     "localname": "ConsolidationItemsDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CounterpartyNameAxis": {
     "auth_ref": [
      "r57",
      "r59",
      "r115",
      "r116",
      "r318",
      "r352"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "localname": "CounterpartyNameAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember": {
     "auth_ref": [
      "r0",
      "r122",
      "r127",
      "r133",
      "r215",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r542",
      "r543",
      "r544",
      "r545",
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption, Adjustment [Member]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustmentMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionAxis": {
     "auth_ref": [
      "r0",
      "r122",
      "r127",
      "r133",
      "r215",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r542",
      "r543",
      "r544",
      "r545",
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Axis]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionDomain": {
     "auth_ref": [
      "r0",
      "r122",
      "r127",
      "r133",
      "r215",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r542",
      "r543",
      "r544",
      "r545",
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Domain]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r210",
      "r386",
      "r392",
      "r662"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r317",
      "r351",
      "r415",
      "r419",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r615",
      "r658",
      "r663",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r317",
      "r351",
      "r415",
      "r419",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r615",
      "r658",
      "r663",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r210",
      "r386",
      "r392",
      "r662"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Domain]"
       }
      }
     },
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r207",
      "r386",
      "r390",
      "r620",
      "r656",
      "r661"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Products and Services [Axis]"
       }
      }
     },
     "localname": "ProductOrServiceAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [
      "r207",
      "r386",
      "r390",
      "r620",
      "r656",
      "r661"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Products and Services [Domain]"
       }
      }
     },
     "localname": "ProductsAndServicesDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganizationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r317",
      "r351",
      "r404",
      "r415",
      "r419",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r615",
      "r658",
      "r663",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r317",
      "r351",
      "r404",
      "r415",
      "r419",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r615",
      "r658",
      "r663",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "auth_ref": [
      "r58",
      "r59",
      "r115",
      "r116",
      "r318",
      "r352"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScenarioForecastMember": {
     "auth_ref": [
      "r128",
      "r416"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forecast"
       }
      }
     },
     "localname": "ScenarioForecastMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScenarioUnspecifiedDomain": {
     "auth_ref": [
      "r128",
      "r133",
      "r416"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Scenario, Unspecified [Domain]"
       }
      }
     },
     "localname": "ScenarioUnspecifiedDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementScenarioAxis": {
     "auth_ref": [
      "r128",
      "r133",
      "r282",
      "r416",
      "r603"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Scenario [Axis]"
       }
      }
     },
     "localname": "StatementScenarioAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of Significant Accounting Policies and Estimates"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsNotesAndLoansReceivableLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Accounts, Notes, Loans and Financing Receivable [Line Items]"
       }
      }
     },
     "localname": "AccountsNotesAndLoansReceivableLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r37",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "auth_ref": [
      "r227"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of activity in allowance for credit losses"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsReceivableChangeInMethodCreditLossExpenseReversal": {
     "auth_ref": [
      "r221"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable from change in methodology.",
        "label": "Accounts Receivable, Change in Method, Credit Loss Expense (Reversal)",
        "terseLabel": "Impact of new accounting standard"
       }
      }
     },
     "localname": "AccountsReceivableChangeInMethodCreditLossExpenseReversal",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r35",
      "r271"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "negatedLabel": "Less-Accumulated depreciation"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Acquired Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "auth_ref": [
      "r258"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Acquired Finite-lived Intangible Assets, Weighted Average Useful Life",
        "terseLabel": "Estimated Useful Life"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r23"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.",
        "label": "Additional Paid in Capital, Common Stock",
        "terseLabel": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r119",
      "r120",
      "r121",
      "r448",
      "r449",
      "r450",
      "r544"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
        "label": "Additional Paid-In Capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Adjustments Related to Tax Withholding for Share-based Compensation",
        "negatedLabel": "Shares received in lieu of tax withholding payment on vested restricted stock"
       }
      }
     },
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r421",
      "r423",
      "r453",
      "r454"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "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-"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r423",
      "r444",
      "r452"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Allocated Share-based Compensation Expense",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r212",
      "r219",
      "r223",
      "r226"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "periodEndLabel": "Balance at end of year",
        "periodStartLabel": "Balance at beginning of year"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r28",
      "r212",
      "r219"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Allowance For Doubtful Accounts Receivable Current",
        "verboseLabel": "Billed accounts receivable, allowance for credit losses (in dollars)"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Allowance for Doubtful Accounts Receivable [Roll Forward]",
        "terseLabel": "Activity in allowance for doubtful accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r225"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Deductions for uncollectible receivables written off, net of recoveries"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on receivable, classified as other and current.",
        "label": "Other Receivables Allowance For Credit Loss",
        "terseLabel": "Other receivables, allowance for credit losses (in dollars)"
       }
      }
     },
     "localname": "AllowanceForDoubtfulOtherReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfFinancingCosts": {
     "auth_ref": [
      "r74",
      "r100",
      "r337",
      "r579"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense attributable to debt issuance costs.",
        "label": "Amortization of Financing Costs",
        "terseLabel": "Amortization of debt financing costs"
       }
      }
     },
     "localname": "AmortizationOfFinancingCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfFinancingCostsAndDiscounts": {
     "auth_ref": [
      "r100",
      "r337",
      "r347",
      "r348",
      "r579"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense attributable to debt discount (premium) and debt issuance costs.",
        "label": "Amortization of Financing Costs and Discounts",
        "terseLabel": "Amortization of debt financing costs"
       }
      }
     },
     "localname": "AmortizationOfFinancingCostsAndDiscounts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r100",
      "r256",
      "r264"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
        "label": "Amortization of Intangible Assets",
        "terseLabel": "Amortization of identifiable intangible assets"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Anti-dilutive securities excluded from computation of earnings per share amount (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "terseLabel": "Earnings Per Share"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.",
        "label": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetImpairmentChargesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Impairment Charges [Abstract]",
        "terseLabel": "Impairment"
       }
      }
     },
     "localname": "AssetImpairmentChargesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r111",
      "r189",
      "r196",
      "r203",
      "r214",
      "r299",
      "r300",
      "r301",
      "r303",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r524",
      "r529",
      "r568",
      "r600",
      "r602",
      "r625",
      "r643"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets",
        "terseLabel": "Total Assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsAndLiabilitiesLesseeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets and Liabilities, Lessee [Abstract]",
        "terseLabel": "Summary of lease asset and liabilities"
       }
      }
     },
     "localname": "AssetsAndLiabilitiesLesseeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r5",
      "r6",
      "r55",
      "r111",
      "r214",
      "r299",
      "r300",
      "r301",
      "r303",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r524",
      "r529",
      "r568",
      "r600",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current [Abstract]",
        "terseLabel": "CURRENT ASSETS:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r424",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetRelatedDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Detail of Other Current Liabilities"
       }
      }
     },
     "localname": "BalanceSheetRelatedDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r118"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).  Accounting policies describe all significant accounting policies of the reporting entity.",
        "label": "Basis of Presentation and Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of Significant Accounting Policies and Estimates"
       }
      }
     },
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BilledContractReceivables": {
     "auth_ref": [
      "r50",
      "r618"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Billed Contracts Receivable",
        "verboseLabel": "Billed accounts receivable, less allowance for credit losses of $8,808 and $9,087, respectively"
       }
      }
     },
     "localname": "BilledContractReceivables",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r414",
      "r417"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Acquisition, Acquiree [Domain]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r414",
      "r417",
      "r504",
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Business Acquisition [Line Items]",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "BusinessAcquisitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r512",
      "r513",
      "r514"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Combination, Consideration Transferred",
        "totalLabel": "Total consideration transferred",
        "verboseLabel": "Total purchase price"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred [Abstract]",
        "terseLabel": "Consideration transferred:"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "auth_ref": [
      "r511",
      "r512",
      "r513",
      "r517"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.",
        "label": "Business Combination, Consideration Transferred, Liabilities Incurred",
        "terseLabel": "Promissory note payable",
        "verboseLabel": "Notes issued to former owners"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredOther1": {
     "auth_ref": [
      "r516"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tangible or intangible assets, including a business or subsidiary of the acquirer transferred by the entity to the former owners of the acquiree. Excludes cash.",
        "label": "Business Combination, Consideration Transferred, Other",
        "verboseLabel": "Other amount payable"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredOther1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r99",
      "r519"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.",
        "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"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": {
     "auth_ref": [
      "r518"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High",
        "terseLabel": "Contingent earn-out estimated milestone payment, maximum"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow": {
     "auth_ref": [
      "r518"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low",
        "terseLabel": "Contingent earn-out estimated milestone payment, minimum"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r522"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, 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.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "terseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other",
        "terseLabel": "Other current assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "terseLabel": "Billed and unbilled accounts receivable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "negatedLabel": "Accounts payable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt 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, Long-term Debt",
        "negatedLabel": "Current maturities of long-term debt"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesLongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other 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, Other",
        "negatedLabel": "Accrued expenses and other current liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "auth_ref": [
      "r506",
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 11.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "terseLabel": "Identifiable intangible assets",
        "verboseLabel": "Estimated Fair Value"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 12.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other",
        "negatedLabel": "Other long-term liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "auth_ref": [
      "r506",
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 13.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "terseLabel": "Property and equipment"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "auth_ref": [
      "r507"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "totalLabel": "Total assets acquired and liabilities assumed"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract": {
     "auth_ref": [],
     "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:"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r503"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Calculated under guidance for revenue recognition in effect prior to change to new guidance for revenue from contract with customer when using transition method for cumulative effect in period including initial date of application.",
        "label": "Calculated under Revenue Guidance in Effect before Topic 606 [Member]"
       }
      }
     },
     "localname": "CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r3",
      "r32",
      "r102"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Cash and Cash Equivalents, Fair Value Disclosure",
        "terseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r11",
      "r103"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash Flow Information"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r95",
      "r102",
      "r105"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents",
        "periodEndLabel": "CASH AND CASH EQUIVALENTS, end of period",
        "periodStartLabel": "CASH AND CASH EQUIVALENTS, beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r95",
      "r569"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "NET INCREASE IN CASH AND CASH EQUIVALENTS"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashSurrenderValueFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Cash Surrender Value, Fair Value Disclosure",
        "terseLabel": "Life insurance-cash surrender value"
       }
      }
     },
     "localname": "CashSurrenderValueFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashSurrenderValueOfLifeInsurance": {
     "auth_ref": [
      "r7",
      "r36"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity.",
        "label": "Cash Surrender Value of Life Insurance",
        "terseLabel": "Cash surrender value"
       }
      }
     },
     "localname": "CashSurrenderValueOfLifeInsurance",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ChangeInContractWithCustomerAssetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Contract with Customer, Asset [Abstract]",
        "terseLabel": "Contract Assets"
       }
      }
     },
     "localname": "ChangeInContractWithCustomerAssetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Contract with Customer, Liability [Abstract]",
        "terseLabel": "Contract Liabilities"
       }
      }
     },
     "localname": "ChangeInContractWithCustomerLiabilityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r46",
      "r281",
      "r632",
      "r648"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and Contingencies.",
        "terseLabel": "COMMITMENTS AND CONTINGENCIES"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r278",
      "r279",
      "r280",
      "r290",
      "r673"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "auth_ref": [
      "r358"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding.",
        "label": "Common Stock, Dividends, Per Share, Declared",
        "verboseLabel": "Dividends (per share)"
       }
      }
     },
     "localname": "CommonStockDividendsPerShareDeclared",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r119",
      "r120",
      "r544"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r21"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock, Par or Stated Value Per Share",
        "terseLabel": "Common stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r21"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, shares authorized"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r21"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.",
        "label": "Common Stock, Shares, Issued",
        "periodEndLabel": "BALANCE (in shares)",
        "periodStartLabel": "BALANCE (in shares)",
        "terseLabel": "Common stock, shares issued"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r21",
      "r353"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common Stock, Shares, Outstanding",
        "terseLabel": "Common shares outstanding, end of period"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r21",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Common Stock, Value, Issued",
        "verboseLabel": "Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": {
     "auth_ref": [
      "r399",
      "r400",
      "r420",
      "r456"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.",
        "label": "Compensation and Employee Benefit Plans [Text Block]",
        "terseLabel": "Employee Benefit Plans"
       }
      }
     },
     "localname": "CompensationAndEmployeeBenefitPlansTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlans"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Benefit Plans"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Components of Deferred Tax Assets [Abstract]",
        "terseLabel": "Deferred tax assets-"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Net, Classification [Abstract]",
        "terseLabel": "Deferred income tax assets"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Components of Deferred Tax Liabilities [Abstract]",
        "terseLabel": "Deferred tax liabilities-"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r169",
      "r170",
      "r210",
      "r565",
      "r566",
      "r672"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r169",
      "r170",
      "r210",
      "r565",
      "r566",
      "r671",
      "r672"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r169",
      "r170",
      "r210",
      "r565",
      "r566",
      "r671",
      "r672"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r164",
      "r640"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "terseLabel": "Concentrations of Credit Risk"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Concentration Risk [Line Items]",
        "terseLabel": "Concentrations of Credit Risk"
       }
      }
     },
     "localname": "ConcentrationRiskLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r169",
      "r170",
      "r210",
      "r565",
      "r566"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
        "label": "Concentration Risk, Percentage",
        "terseLabel": "Single customer, percentage of revenue"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTable": {
     "auth_ref": [
      "r167",
      "r169",
      "r170",
      "r171",
      "r565",
      "r567",
      "r672"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.",
        "label": "Concentration Risk [Table]"
       }
      }
     },
     "localname": "ConcentrationRiskTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r169",
      "r170",
      "r210",
      "r565",
      "r566",
      "r672"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.",
        "label": "Concentration Risk Type [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r106",
      "r526"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
        "label": "Consolidation, Policy [Policy Text Block]",
        "terseLabel": "Principles of Consolidation"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConstructionContractorReceivableRetainage": {
     "auth_ref": [
      "r22",
      "r616"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of right to consideration in exchange for good or service transferred to customer withheld under retainage provision in long-term contract or program when right to consideration is unconditional.",
        "label": "Construction Contractor, Receivable, Retainage",
        "terseLabel": "Retention receivable"
       }
      }
     },
     "localname": "ConstructionContractorReceivableRetainage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConstructionInProgressMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.",
        "label": "Construction in progress"
       }
      }
     },
     "localname": "ConstructionInProgressMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.",
        "label": "Contract with Customer, Asset and Liability [Table Text Block]",
        "terseLabel": "Schedule of contract assets and liabilities"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r365"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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, from business combination.",
        "label": "Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination",
        "terseLabel": "Change due to acquisitions / disposals"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "auth_ref": [
      "r361",
      "r363",
      "r387"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract with Customer, Asset, Net, Current",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of period",
        "terseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses of $84 and $79, respectively",
        "verboseLabel": "Costs and estimated earnings in excess of billings"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized": {
     "auth_ref": [
      "r366"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.",
        "label": "Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized",
        "verboseLabel": "Other changes in the period"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r361",
      "r362",
      "r387"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Liability, Current",
        "negatedLabel": "Billings in excess of costs and estimated earnings",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of period",
        "terseLabel": "Billings in excess of costs and estimated earnings"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r365"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.",
        "label": "Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination",
        "terseLabel": "Change due to acquisitions / disposals"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r388"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "terseLabel": "Revenue related to our contract liabilities"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal": {
     "auth_ref": [
      "r364",
      "r385"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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 to consideration is unconditional.",
        "label": "Contract with Customer, Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Change related to credit allowance"
       }
      }
     },
     "localname": "ContractWithCustomerReceivableCreditLossExpenseReversal",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfRevenue": {
     "auth_ref": [
      "r76",
      "r111",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r568"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.",
        "label": "Cost of Revenue",
        "terseLabel": "COST OF SERVICES"
       }
      }
     },
     "localname": "CostOfRevenue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": {
     "auth_ref": [
      "r216",
      "r217",
      "r218",
      "r220",
      "r222",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Credit Loss, Financial Instrument [Policy Text Block]",
        "verboseLabel": "Accounts Receivable and Allowance for Credit Losses"
       }
      }
     },
     "localname": "CreditLossFinancialInstrumentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r486",
      "r494"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current Federal Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r486",
      "r494",
      "r496"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "Current Income Tax Expense (Benefit)",
        "totalLabel": "Total current"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Current tax provision-"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r486",
      "r494"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current State and Local Tax Expense (Benefit)",
        "terseLabel": "State and Puerto Rico"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r168",
      "r210"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer concentration"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r510"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer Relationships"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtAndCapitalLeaseObligations": {
     "auth_ref": [
      "r630",
      "r650"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of short-term and long-term debt and lease obligation.",
        "label": "Debt and Capital Lease Obligations",
        "totalLabel": "Total debt"
       }
      }
     },
     "localname": "DebtAndCapitalLeaseObligations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Obligations"
       }
      }
     },
     "localname": "DebtDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r109",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r331",
      "r338",
      "r339",
      "r341",
      "r349"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Long-term Debt [Text Block]",
        "terseLabel": "Debt Obligations"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r14",
      "r15",
      "r16",
      "r110",
      "r117",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r345",
      "r346",
      "r347",
      "r348",
      "r580",
      "r626",
      "r628",
      "r642"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.",
        "label": "Interest rate margin (as a percent)",
        "terseLabel": "Additional per annum interest margin (as a percent)"
       }
      }
     },
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentDescriptionOfVariableRateBasis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of reference rate used for variable rate of debt instrument.",
        "label": "Debt Instrument, Description of Variable Rate Basis",
        "terseLabel": "Variable rate basis"
       }
      }
     },
     "localname": "DebtInstrumentDescriptionOfVariableRateBasis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "auth_ref": [
      "r43",
      "r344",
      "r578",
      "r580"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.",
        "label": "Debt Instrument, Interest Rate at Period End",
        "terseLabel": "Weighted average interest rate (as a percent)"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Interest Rate, Effective Percentage [Abstract]"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateEffectivePercentageAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "auth_ref": [
      "r43",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "terseLabel": "Stated interest rate (as a percent)"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Debt Instrument [Line Items]",
        "terseLabel": "Debt Obligations"
       }
      }
     },
     "localname": "DebtInstrumentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r44",
      "r110",
      "r117",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r345",
      "r346",
      "r347",
      "r348",
      "r580"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentTable": {
     "auth_ref": [
      "r44",
      "r110",
      "r117",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r321",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r340",
      "r345",
      "r346",
      "r347",
      "r348",
      "r354",
      "r355",
      "r356",
      "r357",
      "r577",
      "r578",
      "r580",
      "r581",
      "r639"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.",
        "label": "Schedule of Long-term Debt Instruments [Table]"
       }
      }
     },
     "localname": "DebtInstrumentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet": {
     "auth_ref": [
      "r327",
      "r342",
      "r345",
      "r346",
      "r579"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unamortized debt discount (premium) and debt issuance costs.",
        "label": "Debt Instrument, Unamortized Discount (Premium) and Debt Issuance Costs, Net",
        "negatedLabel": "Less-unamortized debt issuance costs"
       }
      }
     },
     "localname": "DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtLongtermAndShorttermCombinedAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the aggregate of total long-term debt, including current maturities and short-term debt.",
        "label": "Debt, Long-term and Short-term, Combined Amount",
        "terseLabel": "Total principal amount",
        "verboseLabel": "Outstanding balance"
       }
      }
     },
     "localname": "DebtLongtermAndShorttermCombinedAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtRelatedCommitmentFeesAndDebtIssuanceCosts": {
     "auth_ref": [
      "r80"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the charge against earnings during the period for commitment fees and debt issuance expenses.",
        "label": "Debt Related Commitment Fees and Debt Issuance Costs",
        "terseLabel": "Interest expense on borrowings and unused commitment fees"
       }
      }
     },
     "localname": "DebtRelatedCommitmentFeesAndDebtIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible": {
     "auth_ref": [
      "r466"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease reasonably possible in the next twelve months for the unrecognized tax benefit.",
        "label": "Decrease in Unrecognized Tax Benefits is Reasonably Possible",
        "terseLabel": "Decrease in unrecognized tax benefits"
       }
      }
     },
     "localname": "DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r487",
      "r494"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state, local, and federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Federal, State and Local, Tax Expense (Benefit)",
        "totalLabel": "Total deferred"
       }
      }
     },
     "localname": "DeferredFederalStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r460",
      "r461"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.",
        "label": "Deferred Income Tax Assets, Net",
        "terseLabel": "Deferred tax assets",
        "verboseLabel": "DEFERRED TAX ASSETS"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r100",
      "r112",
      "r487",
      "r494",
      "r495",
      "r496"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Income Tax Expense (Benefit)",
        "verboseLabel": "Deferred tax provision (benefit)"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Deferred tax provision (benefit)-"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "auth_ref": [
      "r18",
      "r19",
      "r476",
      "r627",
      "r641"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.",
        "label": "Deferred Tax Liabilities, Gross",
        "negatedTotalLabel": "Total deferred tax liabilities"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r460",
      "r461"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "Deferred Income Tax Liabilities, Net",
        "terseLabel": "Deferred tax liabilities",
        "verboseLabel": "DEFERRED TAX LIABILITIES"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueCurrent": {
     "auth_ref": [
      "r29"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Deferred Revenue, Current",
        "terseLabel": "Deferred revenue"
       }
      }
     },
     "localname": "DeferredRevenueCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r487",
      "r494"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "terseLabel": "State and Puerto Rico"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.",
        "label": "Deferred Tax Assets, Goodwill and Intangible Assets",
        "terseLabel": "Intangible assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGoodwillAndIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r477"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "Deferred Tax Assets, Gross",
        "totalLabel": "Subtotal"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "auth_ref": [
      "r479"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "Deferred Tax Assets, Net",
        "totalLabel": "Net deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r479"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "Deferred Tax Assets, Net of Valuation Allowance",
        "terseLabel": "Net deferred tax assets",
        "totalLabel": "Total deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards",
        "terseLabel": "Net operating loss carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic",
        "terseLabel": "Federal deferred tax assets net operating loss carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, State and Local",
        "terseLabel": "State deferred tax assets net operating loss carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.",
        "label": "Deferred Tax Assets, Other",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals",
        "terseLabel": "Accrued liabilities and expenses"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Allowance for Doubtful Accounts",
        "terseLabel": "Accounts receivable and allowance for doubtful accounts"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r478"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "negatedLabel": "Valuation allowances"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill": {
     "auth_ref": [
      "r484",
      "r485",
      "r520",
      "r521"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from goodwill.",
        "label": "Deferred Tax Liabilities, Goodwill",
        "negatedLabel": "Goodwill"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.",
        "label": "Deferred Tax Liabilities, Intangible Assets",
        "negatedLabel": "Intangible assets"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesLeasingArrangements": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from leasing arrangements.",
        "label": "Deferred Tax Liabilities, Leasing Arrangements",
        "negatedLabel": "Lease right-of-use asset"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesLeasingArrangements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.",
        "label": "Deferred Tax Liabilities, Other",
        "negatedLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r484",
      "r485"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "negatedLabel": "Property and equipment"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesDeferredTaxAssetsLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "auth_ref": [
      "r413"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost for defined contribution plan.",
        "label": "Defined Contribution Plan, Cost Recognized",
        "terseLabel": "Contribution"
       }
      }
     },
     "localname": "DefinedContributionPlanCostRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r100",
      "r269"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.",
        "label": "Depreciation",
        "terseLabel": "Depreciation expense"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r100",
      "r269"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.",
        "label": "Depreciation, Depletion and Amortization, Nonproduction",
        "negatedLabel": "Depreciation and amortization expense",
        "verboseLabel": "Depreciation expense"
       }
      }
     },
     "localname": "DepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeContractTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset.",
        "label": "Derivative Contract [Domain]"
       }
      }
     },
     "localname": "DerivativeContractTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "auth_ref": [
      "r56",
      "r59",
      "r60",
      "r536",
      "r613"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value, before effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement.",
        "label": "Derivative Liability, Fair Value, Gross Liability",
        "verboseLabel": "Interest rate swap liability"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "auth_ref": [
      "r59",
      "r535",
      "r537",
      "r538",
      "r540"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of derivative contract.",
        "label": "Derivative Instrument [Axis]"
       }
      }
     },
     "localname": "DerivativeInstrumentRiskAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Disaggregation of Revenue [Line Items]",
        "terseLabel": "Disaggregation of Revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [
      "r386",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r386"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "terseLabel": "Schedule of disaggregation of revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r456"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Disclosure of Compensation Related Costs, Share-based Payments [Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisclosureOfRepurchaseAgreementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Repurchase Program [Abstract]",
        "terseLabel": "Share Repurchase Program"
       }
      }
     },
     "localname": "DisclosureOfRepurchaseAgreementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DividendsCommonStockCash": {
     "auth_ref": [
      "r358"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.",
        "label": "Dividends, Common Stock, Cash",
        "negatedLabel": "Dividends"
       }
      }
     },
     "localname": "DividendsCommonStockCash",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DomesticCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
        "label": "Federal"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "INCOME PER SHARE:"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r72",
      "r125",
      "r126",
      "r127",
      "r128",
      "r129",
      "r134",
      "r136",
      "r149",
      "r150",
      "r151",
      "r156",
      "r157",
      "r545",
      "r546",
      "r635",
      "r652"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Net income (loss) (in dollars per share)",
        "terseLabel": "Basic"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r72",
      "r125",
      "r126",
      "r127",
      "r128",
      "r129",
      "r136",
      "r149",
      "r150",
      "r151",
      "r156",
      "r157",
      "r545",
      "r546",
      "r635",
      "r652"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.",
        "label": "Net diluted income after-tax (in dollars per share)",
        "terseLabel": "Diluted"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r152",
      "r154",
      "r155",
      "r158"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Stockholders' Equity Note. Disclosure [Text Block]",
        "terseLabel": "Stockholders' Equity"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r463"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "terseLabel": "Effective tax rates on continuing operations"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r113",
      "r463",
      "r497"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "terseLabel": "Federal statutory income tax rate (as a percent)"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount": {
     "auth_ref": [
      "r455",
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Amount",
        "terseLabel": "Stock-based compensation deductions"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "auth_ref": [
      "r41"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Employee-related Liabilities, Current",
        "terseLabel": "Accrued compensation and benefits"
       }
      }
     },
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "auth_ref": [
      "r445"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.",
        "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized",
        "terseLabel": "Compensation expense yet to be recognized"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r445"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition",
        "terseLabel": "Weighted-average period over which compensation cost will be recognized"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "auth_ref": [
      "r445"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement.",
        "label": "Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "terseLabel": "Unrecognized compensation cost"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r444"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.",
        "label": "Employee Service Share-based Compensation, Tax Benefit from Compensation Expense",
        "terseLabel": "Income tax benefit"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r0",
      "r65",
      "r66",
      "r67",
      "r119",
      "r120",
      "r121",
      "r124",
      "r130",
      "r132",
      "r160",
      "r215",
      "r353",
      "r358",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r544",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r665",
      "r666",
      "r667",
      "r689"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.",
        "label": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EstimateOfFairValueFairValueDisclosureMember": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r564"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measured as an estimate of fair value.",
        "label": "Total"
       }
      }
     },
     "localname": "EstimateOfFairValueFairValueDisclosureMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EurodollarMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate based on U.S. dollar denominated deposits at foreign banks or foreign branches of U.S. banks.",
        "label": "Eurodollar rate"
       }
      }
     },
     "localname": "EurodollarMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "auth_ref": [
      "r547",
      "r548",
      "r549",
      "r558"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.",
        "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "auth_ref": [
      "r553",
      "r558"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "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)"
       }
      }
     },
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r548",
      "r604",
      "r605",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.",
        "label": "Fair Value, Hierarchy [Axis]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByLiabilityClassAxis": {
     "auth_ref": [
      "r557",
      "r558"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by class of liability.",
        "label": "Liability Class [Axis]"
       }
      }
     },
     "localname": "FairValueByLiabilityClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementBasisAxis": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r547",
      "r559"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by measurement basis.",
        "label": "Measurement Basis [Axis]"
       }
      }
     },
     "localname": "FairValueByMeasurementBasisAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "auth_ref": [
      "r547",
      "r548",
      "r551",
      "r552",
      "r560"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by measurement frequency.",
        "label": "Measurement Frequency [Axis]"
       }
      }
     },
     "localname": "FairValueByMeasurementFrequencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r329",
      "r405",
      "r406",
      "r411",
      "r412",
      "r548",
      "r604"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.",
        "label": "Quoted Market Prices In Active Markets for Identical Assets (Level 1)"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r405",
      "r406",
      "r411",
      "r412",
      "r548",
      "r605"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Significant Other Observable Inputs (Level 2)"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r548",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Significant Unobservable Inputs (Level 3)"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain": {
     "auth_ref": [
      "r553"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents classes of liabilities measured and disclosed at fair value.",
        "label": "Fair Value by Liability Class [Domain]"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "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)"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement frequency.",
        "label": "Fair Value, Measurement Frequency [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementFrequencyDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": {
     "auth_ref": [
      "r554"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings",
        "terseLabel": "Adjustments to fair value"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues": {
     "auth_ref": [
      "r555"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Issuances",
        "terseLabel": "Issuances"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "auth_ref": [
      "r555"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "negatedLabel": "Settlements"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "auth_ref": [
      "r553"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliations, Recurring Basis, Liability Value",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of year"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r329",
      "r345",
      "r346",
      "r405",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r604",
      "r605",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.",
        "label": "Fair Value Hierarchy [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsNonrecurringMember": {
     "auth_ref": [
      "r547",
      "r548",
      "r551",
      "r552",
      "r556",
      "r560"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Infrequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, not frequently measured at fair value.",
        "label": "Non recurring basis"
       }
      }
     },
     "localname": "FairValueMeasurementsNonrecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "auth_ref": [
      "r557",
      "r560"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Recurring basis"
       }
      }
     },
     "localname": "FairValueMeasurementsRecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "auth_ref": [
      "r561",
      "r563"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "terseLabel": "Financial Instruments"
       }
      }
     },
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FinanceLeaseInterestExpense": {
     "auth_ref": [
      "r585",
      "r592",
      "r598"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest expense on finance lease liability.",
        "label": "Finance Lease, Interest Expense",
        "terseLabel": "Interest expense on finance leases"
       }
      }
     },
     "localname": "FinanceLeaseInterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiability": {
     "auth_ref": [
      "r583",
      "r597"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease.",
        "label": "Finance Lease, Liability",
        "terseLabel": "Finance lease liabilities (See Note 10)",
        "verboseLabel": "Finance lease liability"
       }
      }
     },
     "localname": "FinanceLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r584"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes finance lease liability.",
        "label": "Finance Lease, Liability, Statement of Financial Position [Extensible Enumeration]"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_FinanceLeasePrincipalPayments": {
     "auth_ref": [
      "r587",
      "r593"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for principal payment on finance lease.",
        "label": "Finance Lease, Principal Payments",
        "negatedLabel": "Payments on finance lease liabilities"
       }
      }
     },
     "localname": "FinanceLeasePrincipalPayments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "terseLabel": "Estimated Useful Lives in Years"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r263"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "negatedLabel": "Accumulated Amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable": {
     "auth_ref": [
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table containing detailed characteristics of finite-lived intangible assets acquired during a business combination. Finite-lived intangible assets are assets that have no physical form, but have expected future economic benefit, and are expected to be used over a defined period. Acquired finite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the Entity) and in total. Additionally, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization period are also disclosed.",
        "label": "Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r265"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r265"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Five",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r265"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in 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, Year Four",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r265"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r265"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r257",
      "r259",
      "r263",
      "r266",
      "r621",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Future amortization expense of identifiable intangible assets"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r263",
      "r622"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Gross",
        "terseLabel": "Gross Book Value"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Identifiable Intangible Assets, Net"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r257",
      "r262"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r263",
      "r621"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.",
        "label": "Furniture and fixtures"
       }
      }
     },
     "localname": "FurnitureAndFixturesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnDispositionOfAssets": {
     "auth_ref": [
      "r100",
      "r268",
      "r273"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property.",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment, Excluding Oil and Gas Property and Timber Property",
        "negatedLabel": "GAIN ON SALE OF ASSETS"
       }
      }
     },
     "localname": "GainLossOnDispositionOfAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "auth_ref": [
      "r100"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "negatedTerseLabel": "Gain on sale of assets"
       }
      }
     },
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainOnBusinessInterruptionInsuranceRecovery": {
     "auth_ref": [
      "r82"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net amount (to the extent disclosed within this portion of the income statement) by which an insurance settlement exceeds incremental costs incurred from the event causing an interruption of business, plus the insurance award for earnings lost from the event, such as a natural catastrophe, explosion or fire.",
        "label": "Gain on Business Interruption Insurance Recovery",
        "terseLabel": "Gain due to insurance proceeds received"
       }
      }
     },
     "localname": "GainOnBusinessInterruptionInsuranceRecovery",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesInsuranceRecoveryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralLiabilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of business insurance which provides insurance coverage for a wide variety of liability exposures including, but not limited to, contractual liability, product liability and personal injury liability.",
        "label": "General Liability"
       }
      }
     },
     "localname": "GeneralLiabilityMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r244",
      "r246",
      "r602",
      "r624"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 14.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill.",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of year",
        "terseLabel": "GOODWILL",
        "verboseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r248"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Acquisitions and purchase price adjustments (See Note 5)"
       }
      }
     },
     "localname": "GoodwillAcquiredDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Identifiable Intangible Assets, Net"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r267"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Goodwill and Identifiable Intangible Assets, Net"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "auth_ref": [
      "r252",
      "r260"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Recoverability of Goodwill and Identifiable Intangible Assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillImpairedAccumulatedImpairmentLoss": {
     "auth_ref": [
      "r247",
      "r251"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated impairment loss for an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Impaired, Accumulated Impairment Loss",
        "terseLabel": "Accumulated impairment charges"
       }
      }
     },
     "localname": "GoodwillImpairedAccumulatedImpairmentLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "auth_ref": [
      "r100",
      "r245",
      "r249",
      "r253"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Impairment Loss",
        "terseLabel": "Impairment charges"
       }
      }
     },
     "localname": "GoodwillImpairmentLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Goodwill [Line Items]",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillOtherIncreaseDecrease": {
     "auth_ref": [
      "r250"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Other Increase (Decrease)",
        "terseLabel": "Impact of segment reorganization"
       }
      }
     },
     "localname": "GoodwillOtherIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Goodwill [Roll Forward]",
        "terseLabel": "Changes in the carrying amount of goodwill"
       }
      }
     },
     "localname": "GoodwillRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r75",
      "r111",
      "r189",
      "r195",
      "r199",
      "r202",
      "r205",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r568"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "Gross profit",
        "verboseLabel": "Gross Profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r534",
      "r541"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Axis]"
       }
      }
     },
     "localname": "HedgingDesignationAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationDomain": {
     "auth_ref": [
      "r534"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Domain]"
       }
      }
     },
     "localname": "HedgingDesignationDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets.",
        "label": "Long Lived Assets [Policy Text Block]",
        "terseLabel": "Long-Lived Assets"
       }
      }
     },
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r70",
      "r189",
      "r195",
      "r199",
      "r202",
      "r205",
      "r623",
      "r633",
      "r637",
      "r653"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "INCOME BEFORE INCOME TAXES"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF OPERATIONS"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of taxing authority.",
        "label": "Income Tax Authority, Name [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority, Name [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r113",
      "r464",
      "r474",
      "r481",
      "r492",
      "r498",
      "r500",
      "r501",
      "r502"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Tax Disclosure [Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the additional liability or refund received or expected based on a final settlement with a taxing authority.",
        "label": "Income Tax Examination, Liability (Refund) Adjustment from Settlement with Taxing Authority",
        "terseLabel": "Refund claims allowed in Income tax examination"
       }
      }
     },
     "localname": "IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExaminationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Income Tax Examination [Line Items]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxExaminationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxExaminationTable": {
     "auth_ref": [
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A summary of income tax examinations that an enterprise is currently subject to or that have been completed in the current period typically including a description of the examination, the jurisdiction conducting the examination, the tax year(s) under examination, the likelihood of an unfavorable settlement, the range of possible losses, the liability recorded, the Increase or Decrease in the liability from the prior period, and any penalties and interest that have been incurred or accrued.",
        "label": "Income Tax Examination [Table]"
       }
      }
     },
     "localname": "IncomeTaxExaminationTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r114",
      "r131",
      "r132",
      "r187",
      "r462",
      "r493",
      "r499",
      "r654"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income Tax Expense (Benefit)",
        "terseLabel": "Provision for income taxes",
        "totalLabel": "Provision for income taxes",
        "verboseLabel": "PROVISION FOR INCOME TAXES"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Amount [Abstract]",
        "terseLabel": "Increases (decreases) resulting from-"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r64",
      "r458",
      "r459",
      "r474",
      "r475",
      "r480",
      "r488"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount",
        "terseLabel": "Valuation allowances"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "terseLabel": "Income taxes at the federal statutory rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpense": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amount",
        "terseLabel": "Nondeductible expenses"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.",
        "label": "Effective Income Tax Rate Reconciliation, Other Reconciling Items, Amount",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherReconcilingItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount",
        "terseLabel": "Net state income taxes"
       }
      }
     },
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationTaxContingencies": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in income tax contingencies. Including, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other contingencies.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Contingency, Amount",
        "terseLabel": "Net unrecognized tax benefits"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxContingencies",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount",
        "negatedLabel": "R&amp;D tax credits",
        "terseLabel": "R&amp;D tax credits"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r104"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Income Taxes Paid, Net",
        "terseLabel": "Income taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Accounts Payable and Accrued Liabilities",
        "terseLabel": "Accounts payable and accrued liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Receivables, net"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase Decrease in Contract with Customer Assets",
        "negatedLabel": "Costs and estimated earnings in excess of billings and unbilled accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r99",
      "r617"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Increase Decrease in Contract with Customer Liability",
        "terseLabel": "Billings in excess of costs and estimated earnings"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
        "label": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Assets [Abstract]",
        "terseLabel": "(Increase) decrease in-"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "auth_ref": [],
     "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-"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Liabilities [Abstract]",
        "terseLabel": "Increase (decrease) in-"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating assets classified as other.",
        "label": "Increase (Decrease) in Other Operating Assets",
        "negatedLabel": "Other noncurrent assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other.",
        "label": "Increase (Decrease) in Other Operating Liabilities",
        "terseLabel": "Other long-term liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "terseLabel": "Increase (Decrease) in Stockholders' Equity"
       }
      }
     },
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares": {
     "auth_ref": [
      "r138",
      "r139",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r147",
      "r151"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of contingently issuable shares.  Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met.",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares",
        "terseLabel": "Effect of restricted and contingently issuable shares"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToContingentlyIssuableShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "auth_ref": [
      "r137",
      "r138",
      "r140",
      "r151"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements",
        "terseLabel": "Effect of shares issuable under stock option plans based on the treasury stock method"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information about effect of transition method for cumulative effect in initial period of application.",
        "label": "Initial Application Period Cumulative Effect Transition [Axis]"
       }
      }
     },
     "localname": "InitialApplicationPeriodCumulativeEffectTransitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effect of transition method for cumulative effect in initial period of application.",
        "label": "Initial Application Period Cumulative Effect Transition [Domain]"
       }
      }
     },
     "localname": "InitialApplicationPeriodCumulativeEffectTransitionDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r255",
      "r261"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "terseLabel": "IDENTIFIABLE INTANGIBLE ASSETS, NET"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r68",
      "r183",
      "r576",
      "r579",
      "r636"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "Total.",
        "negatedLabel": "Interest expense",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense [Abstract]",
        "terseLabel": "Interest expense"
       }
      }
     },
     "localname": "InterestExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_InterestExpenseRelatedParty": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest expense incurred on a debt or other obligation to related party.",
        "label": "Interest Expense, Related Party",
        "terseLabel": "Interest expense on notes to former owners"
       }
      }
     },
     "localname": "InterestExpenseRelatedParty",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestIncomeAndInterestExpenseDisclosureTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of interest income and expense, including, but not limited to, interest income and expense from investments, loans, and securities.",
        "label": "Interest Income and Interest Expense Disclosure [Table Text Block]",
        "terseLabel": "Schedule of interest expense"
       }
      }
     },
     "localname": "InterestIncomeAndInterestExpenseDisclosureTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r93",
      "r96",
      "r104"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
        "label": "Interest Paid, Net",
        "terseLabel": "Interest"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestRateSwapMember": {
     "auth_ref": [
      "r539"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Forward based contracts in which two parties agree to swap periodic payments that are fixed at the outset of the swap contract with variable payments based on a market interest rate (index rate) over a specified period.",
        "label": "Interest Rate Swap"
       }
      }
     },
     "localname": "InterestRateSwapMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity.",
        "label": "Internal Revenue Service (IRS)"
       }
      }
     },
     "localname": "InternalRevenueServiceIRSMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IntersegmentEliminationMember": {
     "auth_ref": [
      "r181",
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r201",
      "r205"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Eliminating entries used in operating segment consolidation.",
        "label": "Corporate &amp; Eliminations"
       }
      }
     },
     "localname": "IntersegmentEliminationMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r4",
      "r52",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory, Net",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r10",
      "r53",
      "r107",
      "r159",
      "r241",
      "r242",
      "r243",
      "r619"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventory, Policy [Policy Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InvestmentIncomeInterest": {
     "auth_ref": [
      "r78",
      "r182"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.",
        "label": "Investment Income, Interest",
        "terseLabel": "Interest income"
       }
      }
     },
     "localname": "InvestmentIncomeInterest",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LandMember": {
     "auth_ref": [
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Part of earth's surface not covered by water.",
        "label": "Land"
       }
      }
     },
     "localname": "LandMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Lessee, Lease, Description [Line Items]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "auth_ref": [
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about lessee's leases.",
        "label": "Lessee, Lease, Description [Table]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r589"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Lessee, Leases [Policy Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend": {
     "auth_ref": [
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates (true false) whether lessee has option to extend operating lease.",
        "label": "Lessee, Operating Lease, Existence of Option to Extend [true false]",
        "terseLabel": "Existence of option to extend"
       }
      }
     },
     "localname": "LesseeOperatingLeaseExistenceOfOptionToExtend",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "booleanItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities of lease liabilities"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, Payments, Due",
        "totalLabel": "Total Lease Payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Five",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Four",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Three",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Two",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "negatedLabel": "Less-Present Value Discount"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "auth_ref": [
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Term of Contract",
        "verboseLabel": "Lease term for operating lease"
       }
      }
     },
     "localname": "LesseeOperatingLeaseTermOfContract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LetterOfCreditMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Letter of Credit"
       }
      }
     },
     "localname": "LetterOfCreditMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.",
        "label": "Letters of Credit Outstanding, Amount",
        "terseLabel": "Letters of credit amount outstanding"
       }
      }
     },
     "localname": "LettersOfCreditOutstandingAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r40",
      "r111",
      "r197",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r525",
      "r529",
      "r530",
      "r568",
      "r600",
      "r601"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r27",
      "r111",
      "r214",
      "r568",
      "r602",
      "r629",
      "r646"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and stockholders' equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r42",
      "r111",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r525",
      "r529",
      "r530",
      "r568",
      "r600",
      "r601",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current [Abstract]",
        "terseLabel": "CURRENT LIABILITIES:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCredit": {
     "auth_ref": [
      "r16",
      "r628",
      "r642"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Line of Credit Facility, Amount Outstanding",
        "terseLabel": "Outstanding borrowings"
       }
      }
     },
     "localname": "LineOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r38"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "Borrowing capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "auth_ref": [
      "r38"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "terseLabel": "Credit available"
       }
      }
     },
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.",
        "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage",
        "terseLabel": "Commitment fees payable on unused portion of the facility (as a percent)"
       }
      }
     },
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LitigationStatusAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by status of pending, threatened, or settled litigation.",
        "label": "Litigation Status [Axis]"
       }
      }
     },
     "localname": "LitigationStatusAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LitigationStatusDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Status of pending, threatened, or settled litigation.",
        "label": "Litigation Status [Domain]"
       }
      }
     },
     "localname": "LitigationStatusDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LoansPayableMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Borrowing supported by a written promise to pay an obligation.",
        "label": "Promissory note"
       }
      }
     },
     "localname": "LoansPayableMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LongTermDebt": {
     "auth_ref": [
      "r16",
      "r328",
      "r343",
      "r345",
      "r346",
      "r628",
      "r644"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Total Debt",
        "netLabel": "Total debt, net of unamortized debt issuance costs"
       }
      }
     },
     "localname": "LongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtByMaturityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term Debt, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Future principal payments of long-term debt"
       }
      }
     },
     "localname": "LongTermDebtByMaturityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LongTermDebtCurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Less- Current portion",
        "terseLabel": "Current maturities of long-term debt",
        "verboseLabel": "Less-current portion"
       }
      }
     },
     "localname": "LongTermDebtCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "auth_ref": [
      "r117",
      "r298",
      "r333"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtAndCapitalLeaseObligations",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-term Debt, Maturities, Repayments of Principal in Next Twelve Months",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": {
     "auth_ref": [
      "r117",
      "r298",
      "r333"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtAndCapitalLeaseObligations",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-term Debt, Maturities, Repayments of Principal in Year Four",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "auth_ref": [
      "r117",
      "r298",
      "r333"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DebtAndCapitalLeaseObligations",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-term Debt, Maturities, Repayments of Principal in Year Three",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "auth_ref": [
      "r117",
      "r298",
      "r333"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DebtAndCapitalLeaseObligations",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-term Debt, Maturities, Repayments of Principal in Year Two",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsFuturePaymentsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "auth_ref": [
      "r44"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Long-term Debt, Excluding Current Maturities",
        "terseLabel": "LONG-TERM DEBT, NET",
        "verboseLabel": "Total long-term portion of debt, net"
       }
      }
     },
     "localname": "LongTermDebtNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtOtherDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term Debt, Other Disclosures [Abstract]",
        "terseLabel": "Other disclosures"
       }
      }
     },
     "localname": "LongTermDebtOtherDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "auth_ref": [
      "r281",
      "r282",
      "r283",
      "r285",
      "r286",
      "r287",
      "r289",
      "r293",
      "r294"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Loss Contingency Nature [Axis]"
       }
      }
     },
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Loss Contingencies [Line Items]",
        "terseLabel": "Commitments and Contingencies",
        "verboseLabel": "Self-Insurance"
       }
      }
     },
     "localname": "LossContingenciesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesTable": {
     "auth_ref": [
      "r281",
      "r282",
      "r283",
      "r285",
      "r286",
      "r287",
      "r289",
      "r293",
      "r294"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations.",
        "label": "Loss Contingencies [Table]"
       }
      }
     },
     "localname": "LossContingenciesTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingencyDamagesSoughtValue": {
     "auth_ref": [
      "r281",
      "r284",
      "r288"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter.",
        "label": "Loss Contingency, Damages Sought, Value",
        "terseLabel": "Damages claimed"
       }
      }
     },
     "localname": "LossContingencyDamagesSoughtValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingencyNatureDomain": {
     "auth_ref": [
      "r281",
      "r282",
      "r283",
      "r285",
      "r286",
      "r287",
      "r289",
      "r293",
      "r294"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Loss Contingency, Nature [Domain]"
       }
      }
     },
     "localname": "LossContingencyNatureDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesSelfInsuranceDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.",
        "label": "Machinery and equipment"
       }
      }
     },
     "localname": "MachineryAndEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputInceptionDiscountRateMember": {
     "auth_ref": [
      "r550"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using interest rate at inception of contract to determine present value of future cash flows.",
        "label": "Measurement Input, Inception Discount Rate [Member]"
       }
      }
     },
     "localname": "MeasurementInputInceptionDiscountRateMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "auth_ref": [
      "r550"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of measurement input used to determine value of asset and liability.",
        "label": "Measurement Input Type [Axis]"
       }
      }
     },
     "localname": "MeasurementInputTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input used to determine value of asset and liability.",
        "label": "Measurement Input Type [Domain]"
       }
      }
     },
     "localname": "MeasurementInputTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MultiemployerPlanPensionInsignificantPlanContribution": {
     "auth_ref": [
      "r418"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contribution received by multiemployer pension plan from all employers participating in multiemployer pension plan determined to be individually insignificant.",
        "label": "Multiemployer Plans, Plan Contributions",
        "terseLabel": "Contributions made to multi-employer pension plans"
       }
      }
     },
     "localname": "MultiemployerPlanPensionInsignificantPlanContribution",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NatureOfOperations": {
     "auth_ref": [
      "r161",
      "r175"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.",
        "label": "Nature of Operations [Text Block]",
        "terseLabel": "Business and Organization"
       }
      }
     },
     "localname": "NatureOfOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r95"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash provided by (used in) financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM FINANCING ACTIVITIES:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r95"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM INVESTING ACTIVITIES:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r95",
      "r98",
      "r101"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "CASH FLOWS FROM OPERATING ACTIVITIES:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r2",
      "r62",
      "r63",
      "r67",
      "r71",
      "r101",
      "r111",
      "r123",
      "r125",
      "r126",
      "r127",
      "r128",
      "r131",
      "r132",
      "r148",
      "r189",
      "r195",
      "r199",
      "r202",
      "r205",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r546",
      "r568",
      "r634",
      "r651"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net Income (Loss) Attributable to Parent",
        "totalLabel": "NET INCOME"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recent Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r79"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).",
        "label": "Nonoperating Income (Expense)",
        "totalLabel": "Other income (expense)"
       }
      }
     },
     "localname": "NonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonoperating Income (Expense) [Abstract]",
        "terseLabel": "OTHER INCOME (EXPENSE):"
       }
      }
     },
     "localname": "NonoperatingIncomeExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NontradeReceivablesCurrent": {
     "auth_ref": [
      "r54"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.",
        "label": "Nontrade Receivables, Current",
        "terseLabel": "Other receivables, less allowance for credit losses of $503 and $759, respectively"
       }
      }
     },
     "localname": "NontradeReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember": {
     "auth_ref": [
      "r533"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument, not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP), used as economic hedge for exposure to risk.",
        "label": "Not Designated as Hedging Instrument, Economic Hedge [Member]"
       }
      }
     },
     "localname": "NotDesignatedAsHedgingInstrumentEconomicHedgeMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NotesAndLoansPayable": {
     "auth_ref": [
      "r16",
      "r628",
      "r644"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Notes and Loans Payable",
        "terseLabel": "Outstanding balance"
       }
      }
     },
     "localname": "NotesAndLoansPayable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NotesPayableOtherPayablesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A written promise to pay a note to a third party.",
        "label": "Outstanding notes"
       }
      }
     },
     "localname": "NotesPayableOtherPayablesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NumberOfBusinessesAcquired": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of businesses acquired by the entity during the period.",
        "label": "Number of Businesses Acquired",
        "terseLabel": "Number of acquisitions"
       }
      }
     },
     "localname": "NumberOfBusinessesAcquired",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_NumberOfReportableSegments": {
     "auth_ref": [
      "r177"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Number of Reportable Segments",
        "terseLabel": "Number of reportable segments"
       }
      }
     },
     "localname": "NumberOfReportableSegments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r189",
      "r195",
      "r199",
      "r202",
      "r205"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "Operating Income (Loss)",
        "totalLabel": "Operating income"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r586"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease expense. Excludes sublease income.",
        "label": "Operating Lease, Expense",
        "terseLabel": "Operating lease expense"
       }
      }
     },
     "localname": "OperatingLeaseExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease Liabilities, Payments Due [Abstract]",
        "terseLabel": "Maturities of lease liabilities:"
       }
      }
     },
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r583"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Operating Lease, Liability",
        "terseLabel": "Operating lease liability",
        "totalLabel": "Total operating lease liabilities",
        "verboseLabel": "Present Value of Lease Liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability [Abstract]",
        "terseLabel": "Operating lease liabilities:"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r583"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      },
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Operating Lease, Liability, Current",
        "terseLabel": "Other current liabilities",
        "verboseLabel": "Current lease liability"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r584"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes current operating lease liability.",
        "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r583"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "LEASE LIABILITIES",
        "verboseLabel": "Long-term operating lease liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r588",
      "r593"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating Lease, Payments",
        "terseLabel": "Cash paid for amounts included in the measurement of lease liabilities"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r582"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease, Right-of-Use Asset",
        "terseLabel": "LEASE RIGHT-OF-USE ASSET",
        "verboseLabel": "Operating lease right-of-use assets"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r596",
      "r598"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "verboseLabel": "Weighted average discount rate for operating leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r595",
      "r598"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Weighted average remaining lease term"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r482"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
        "label": "Operating Loss Carryforwards",
        "terseLabel": "Net operating loss carryforwards"
       }
      }
     },
     "localname": "OperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLossCarryforwardsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Operating Loss Carryforwards [Line Items]",
        "terseLabel": "Operating loss carryforwards"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLossCarryforwardsTable": {
     "auth_ref": [
      "r483"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.",
        "label": "Operating Loss Carryforwards [Table]"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingSegmentsMember": {
     "auth_ref": [
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r205"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Operating"
       }
      }
     },
     "localname": "OperatingSegmentsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OrderOrProductionBacklogMember": {
     "auth_ref": [
      "r509"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Orders, production or production backlog arising from contracts such as purchase or sales orders acquired in a business combination.",
        "label": "Backlog"
       }
      }
     },
     "localname": "OrderOrProductionBacklogMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business and Organization"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r36"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other Assets, Noncurrent",
        "terseLabel": "OTHER NONCURRENT ASSETS"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherCustomerMember": {
     "auth_ref": [
      "r655",
      "r657",
      "r659",
      "r660",
      "r664",
      "r670"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer classified as other.",
        "label": "Other"
       }
      }
     },
     "localname": "OtherCustomerMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "auth_ref": [
      "r8",
      "r9",
      "r41",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Current",
        "terseLabel": "Other current liabilities",
        "totalLabel": "Total other current liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherLiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities, Current [Abstract]",
        "terseLabel": "Other current liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Noncurrent",
        "terseLabel": "OTHER LONG-TERM LIABILITIES"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r81"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.",
        "label": "Other Nonoperating Income (Expense)",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherSundryLiabilitiesCurrent": {
     "auth_ref": [
      "r41",
      "r297"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Obligations not otherwise itemized or categorized in the footnotes to the financial statements that are due within one year or operating cycle, if longer, from the balance sheet date.",
        "label": "Other Sundry Liabilities, Current",
        "terseLabel": "Other current liabilities"
       }
      }
     },
     "localname": "OtherSundryLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r91"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "negatedLabel": "Payments for contingent consideration arrangements"
       }
      }
     },
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRent": {
     "auth_ref": [
      "r97"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cash payments to lessor's for use of assets under operating leases.",
        "label": "Payments for Rent",
        "terseLabel": "Rent paid to related parties"
       }
      }
     },
     "localname": "PaymentsForRent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow to reacquire common stock during the period.",
        "label": "Payments for Repurchase of Common Stock",
        "negatedLabel": "Share repurchase",
        "terseLabel": "Share repurchase"
       }
      }
     },
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.",
        "label": "Payments of Ordinary Dividends, Common Stock",
        "negatedLabel": "Payments of dividends to stockholders"
       }
      }
     },
     "localname": "PaymentsOfDividendsCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfFinancingCosts": {
     "auth_ref": [
      "r92"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for loan and debt issuance costs.",
        "label": "Payments of Financing Costs",
        "negatedLabel": "Debt financing costs",
        "terseLabel": "Financing and professional cost"
       }
      }
     },
     "localname": "PaymentsOfFinancingCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Payments Related to Tax Withholding for Share-based Compensation",
        "negatedLabel": "Shares received in lieu of tax withholding"
       }
      }
     },
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "auth_ref": [
      "r85",
      "r515"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.",
        "label": "Payments to Acquire Businesses, Gross",
        "terseLabel": "Purchase price paid in cash",
        "verboseLabel": "Cash paid at closing"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r85"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "negatedLabel": "Cash paid for acquisitions, net of cash acquired"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchases of property and equipment",
        "terseLabel": "Capital Expenditures"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PendingLitigationMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Risk of loss associated with the outcome of pending litigation against the entity, for example, but not limited to, litigation in arbitration or within the trial process.",
        "label": "Pending Litigation"
       }
      }
     },
     "localname": "PendingLitigationMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent": {
     "auth_ref": [
      "r17",
      "r401",
      "r402",
      "r403",
      "r412"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans, classified as noncurrent.",
        "label": "Pension and Other Postretirement Defined Benefit Plans, Liabilities, Noncurrent",
        "terseLabel": "Unfunded benefit liability"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureEmployeeBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PerformanceGuaranteeMember": {
     "auth_ref": [
      "r291"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "An agreement (contract) that requires the guarantor to make payments to a guaranteed party based on another entity's failure to perform under an obligating agreement. This may include the issuance of a performance standby letter of credit which requires the guarantor to make payments if a specified party fails to perform under a nonfinancial contractual obligation.",
        "label": "Obligation to perform subcontract work"
       }
      }
     },
     "localname": "PerformanceGuaranteeMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement awarded for meeting performance target.",
        "label": "Performance Stock Units"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r424",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement.",
        "label": "Plan Name [Domain]"
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition": {
     "auth_ref": [
      "r614"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The carrying amount, as of the date of the latest financial statement presented, of all assets that are pledged as collateral for the payment of the related debt obligation primarily arising from secured borrowings, repurchase agreements or other current or potential obligations, where the secured party does not have the right by contract or custom to sell or re-pledge the collateral and therefore are not reclassified and separately reported in the statement of financial position.",
        "label": "Book value of assets pledged as collateral"
       }
      }
     },
     "localname": "PledgedAssetsNotSeparatelyReportedOnStatementOfFinancialPosition",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PortionAtFairValueFairValueDisclosureMember": {
     "auth_ref": [
      "r562"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measured at fair value for financial reporting purposes.",
        "label": "Portion at Fair Value Measurement [Member]"
       }
      }
     },
     "localname": "PortionAtFairValueFairValueDisclosureMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r20",
      "r350"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "terseLabel": "Preferred stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r20"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "Preferred stock, shares authorized"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r20",
      "r350"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Preferred Stock, Shares Issued",
        "terseLabel": "Preferred stock, shares issued"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r20"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Preferred Stock, Shares Outstanding",
        "terseLabel": "Preferred stock, shares outstanding"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r20",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Preferred Stock, Value, Issued",
        "verboseLabel": "Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r5",
      "r30",
      "r31"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for 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.",
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested": {
     "auth_ref": [
      "r83"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the cash inflow during the period from the sale of a component of the entity.",
        "label": "Proceeds from Divestiture of Businesses, Net of Cash Divested",
        "terseLabel": "Proceeds from sale of business"
       }
      }
     },
     "localname": "ProceedsFromDivestitureOfBusinessesNetOfCashDivested",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLongTermLinesOfCredit": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Proceeds from Long-term Lines of Credit",
        "terseLabel": "Proceeds from revolving credit facility"
       }
      }
     },
     "localname": "ProceedsFromLongTermLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "auth_ref": [
      "r84"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "terseLabel": "Proceeds from sales of property and equipment"
       }
      }
     },
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r87",
      "r447"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.",
        "label": "Proceeds from Stock Options Exercised",
        "terseLabel": "Proceeds from exercise of options"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductAndServiceOtherMember": {
     "auth_ref": [
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Article or substance produced by nature, labor or machinery and act of providing assistance, classified as other.",
        "label": "Other."
       }
      }
     },
     "localname": "ProductAndServiceOtherMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "auth_ref": [
      "r41",
      "r292",
      "r295"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Product Warranty Accrual, Current",
        "terseLabel": "Accrued warranty costs"
       }
      }
     },
     "localname": "ProductWarrantyAccrualClassifiedCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProfitLoss": {
     "auth_ref": [
      "r2",
      "r62",
      "r63",
      "r67",
      "r94",
      "r111",
      "r123",
      "r131",
      "r132",
      "r189",
      "r195",
      "r199",
      "r202",
      "r205",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r523",
      "r527",
      "r528",
      "r531",
      "r532",
      "r546",
      "r568",
      "r637"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 18.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.",
        "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest",
        "terseLabel": "Net income",
        "verboseLabel": "Net income"
       }
      }
     },
     "localname": "ProfitLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r35",
      "r272"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Property, Plant and Equipment, Type [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r275",
      "r674",
      "r675",
      "r676"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r34",
      "r270"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property, Plant and Equipment, Gross",
        "terseLabel": "Property and equipment, gross"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Property, Plant and Equipment [Line Items]",
        "terseLabel": "Property and equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r12",
      "r13",
      "r272",
      "r602",
      "r638",
      "r647"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property, Plant and Equipment, Net",
        "terseLabel": "PROPERTY AND EQUIPMENT, NET",
        "totalLabel": "Property and equipment, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r33",
      "r272",
      "r674",
      "r675"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r12",
      "r272"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Schedule of Property Plant and Equipment and Estimated Useful Lives [Table Text Block]",
        "terseLabel": "Schedule of components of property and equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r12",
      "r270"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Property, Plant and Equipment, Type [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Property, Plant and Equipment, Useful Life",
        "terseLabel": "Estimated useful life"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r73",
      "r224"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Provision for Doubtful Accounts",
        "verboseLabel": "Bad debt expense (benefit)"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesLongTermContractsOrPrograms": {
     "auth_ref": [
      "r50"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount to be collected within one year of the balance sheet date (or one operating cycle, if longer) from customers in accordance with the contractual provisions of long-term contracts or programs including amounts billed and unbilled as of the balance sheet date.",
        "label": "Receivables, Long-term Contracts or Programs",
        "terseLabel": "Costs incurred on contracts in progress"
       }
      }
     },
     "localname": "ReceivablesLongTermContractsOrPrograms",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesLongTermContractsOrProgramsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables, Long-term Contracts or Programs [Abstract]",
        "terseLabel": "Contracts in progress"
       }
      }
     },
     "localname": "ReceivablesLongTermContractsOrProgramsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "terseLabel": "Reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties"
       }
      }
     },
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RepaymentsOfLongTermLinesOfCredit": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Repayments of Long-term Lines of Credit",
        "negatedLabel": "Payments on revolving credit facility"
       }
      }
     },
     "localname": "RepaymentsOfLongTermLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RepaymentsOfOtherDebt": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for the payment of debt classified as other.",
        "label": "Repayments of Other Debt",
        "negatedLabel": "Payments on other debt"
       }
      }
     },
     "localname": "RepaymentsOfOtherDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RepaymentsOfSeniorDebt": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for a long-term debt where the holder has highest claim on the entity's asset in case of bankruptcy or liquidation during the period.",
        "label": "Repayments of Senior Debt",
        "negatedLabel": "Payments on term loan",
        "verboseLabel": "Payments on term loan"
       }
      }
     },
     "localname": "RepaymentsOfSeniorDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met.",
        "label": "Restricted Stock"
       }
      }
     },
     "localname": "RestrictedStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r24",
      "r358",
      "r451",
      "r602",
      "r645",
      "r668",
      "r669"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Accumulated Deficit)",
        "terseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r0",
      "r119",
      "r120",
      "r121",
      "r124",
      "r130",
      "r132",
      "r215",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r544",
      "r665",
      "r667"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Deficit)"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customers"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "auth_ref": [
      "r108",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r398"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue from contract with customer.",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r375",
      "r376",
      "r389",
      "r398"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Revenue From Contract With Customer [Text Block]",
        "verboseLabel": "Revenue from Contracts with Customers"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]"
       }
      }
     },
     "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.",
        "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]"
       }
      }
     },
     "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenuePerformanceObligationDescriptionOfPaymentTerms": {
     "auth_ref": [
      "r369"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of payment terms in contract with customer. Includes, but is not limited to, timing of payment, existence of financing component, variability of consideration and constraint on variable consideration.",
        "label": "Revenue, Performance Obligation, Description of Payment Terms",
        "terseLabel": "Revenue, Performance Obligation, Description of Payment Terms"
       }
      }
     },
     "localname": "RevenuePerformanceObligationDescriptionOfPaymentTerms",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation": {
     "auth_ref": [
      "r376"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Revenue, Practical Expedient, Remaining Performance Obligation [true/false]",
        "terseLabel": "Practical Expedient"
       }
      }
     },
     "localname": "RevenuePracticalExpedientRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "booleanItemType"
    },
    "us-gaap_RevenueRecognitionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition [Abstract]"
       }
      }
     },
     "localname": "RevenueRecognitionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "auth_ref": [
      "r373"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation",
        "terseLabel": "Remaining performance obligations"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]",
        "terseLabel": "Remaining Performance Obligations"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r374"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "terseLabel": "Expected timing of performance obligations"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r374"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "auth_ref": [
      "r374"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "terseLabel": "Expected percentage of remaining performance obligations"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_Revenues": {
     "auth_ref": [
      "r69",
      "r111",
      "r180",
      "r181",
      "r194",
      "r200",
      "r201",
      "r207",
      "r208",
      "r210",
      "r214",
      "r299",
      "r300",
      "r301",
      "r304",
      "r305",
      "r306",
      "r308",
      "r310",
      "r312",
      "r313",
      "r568",
      "r637"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Revenues",
        "terseLabel": "REVENUE",
        "verboseLabel": "Revenue"
       }
      }
     },
     "localname": "Revenues",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.",
        "label": "Revolving credit facility"
       }
      }
     },
     "localname": "RevolvingCreditFacilityMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r594",
      "r598"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.",
        "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"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SalesAndExciseTaxPayableCurrentAndNoncurrent": {
     "auth_ref": [
      "r631",
      "r649"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_OtherLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred through that date and payable for statutory sales and use taxes, including value added tax.",
        "label": "Sales and Excise Tax Payable",
        "terseLabel": "Accrued sales and use tax"
       }
      }
     },
     "localname": "SalesAndExciseTaxPayableCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable": {
     "auth_ref": [
      "r51"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule itemizing specific types of trade accounts and notes receivable, and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table]"
       }
      }
     },
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesAllowanceForCreditLossesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Schedule of other current liabilities"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities.",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]"
       }
      }
     },
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityAntiDilutiveStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "auth_ref": [
      "r504",
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "auth_ref": [
      "r504",
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "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"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.",
        "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]",
        "terseLabel": "Schedule of cash paid"
       }
      }
     },
     "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r488"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Schedule of provision for income taxes relating to continuing operations"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDebtTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Debt [Table Text Block]",
        "terseLabel": "Schedule of components of debt obligations"
       }
      }
     },
     "localname": "ScheduleOfDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r479"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "terseLabel": "Schedule of significant components of the net deferred tax assets and net deferred tax liabilities as reflected on the balance sheet"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r463"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of difference in income taxes provided for and the amounts determined by applying the federal statutory tax rate to income before income taxes results"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "auth_ref": [
      "r547",
      "r548"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "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"
       }
      }
     },
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": {
     "auth_ref": [
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]",
        "terseLabel": "Schedule of acquired intangible assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r257",
      "r262",
      "r621"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r257",
      "r262"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of components of identifiable intangible assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "auth_ref": [
      "r252",
      "r254"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.",
        "label": "Schedule of Goodwill [Table]"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r252",
      "r254"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of changes in the carrying amount of goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "auth_ref": [
      "r298"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.",
        "label": "Schedule of Maturities of Long-term Debt [Table Text Block]",
        "terseLabel": "Schedule of future principal payments of long-term debt"
       }
      }
     },
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock": {
     "auth_ref": [
      "r434"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the changes in outstanding nonvested shares.",
        "label": "Schedule of Nonvested Share Activity [Table Text Block]",
        "verboseLabel": "Summary of information about nonvested stock option awards and changes"
       }
      }
     },
     "localname": "ScheduleOfNonvestedShareActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r35",
      "r272"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "auth_ref": [
      "r189",
      "r192",
      "r198",
      "r252"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.",
        "label": "Schedule of Segment Reporting Information, by Segment [Table]"
       }
      }
     },
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "auth_ref": [
      "r189",
      "r192",
      "r198",
      "r252"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Summary of information about reportable segments"
       }
      }
     },
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r424",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": {
     "auth_ref": [
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Details comprising a table providing supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.",
        "label": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": {
     "auth_ref": [
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.",
        "label": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table Text Block]",
        "terseLabel": "Summary information about stock options outstanding"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r429",
      "r438",
      "r440"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Schedule of Share-based Compensation, Stock Options, Activity [Table Text Block]",
        "terseLabel": "Summary of activity under the entity's stock option plans"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "auth_ref": [
      "r473",
      "r489"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits.",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of reconciliation of the beginning and ending amount of unrecognized tax benefits, excluding accrued interest and penalties"
       }
      }
     },
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "auth_ref": [
      "r153"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "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"
       }
      }
     },
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r262"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Schedule of future amortization expense of identifiable intangible assets"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentDomain": {
     "auth_ref": [
      "r176",
      "r180",
      "r181",
      "r182",
      "r183",
      "r184",
      "r185",
      "r186",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r205",
      "r210",
      "r276",
      "r277",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.",
        "label": "Segments [Domain]"
       }
      }
     },
     "localname": "SegmentDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Information"
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r176",
      "r178",
      "r179",
      "r189",
      "r193",
      "r199",
      "r203",
      "r204",
      "r205",
      "r206",
      "r207",
      "r209",
      "r210",
      "r211"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.",
        "label": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Segment Information"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Segment Reporting Information [Line Items]",
        "terseLabel": "Segment Information"
       }
      }
     },
     "localname": "SegmentReportingInformationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SelfInsuranceReserveCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Self Insurance Reserve, Current",
        "terseLabel": "Accrued self-insurance"
       }
      }
     },
     "localname": "SelfInsuranceReserveCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SelfInsuranceReservePolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for self-insurance reserves, including, but not limited to incurred but not reported reserves (IBNR).",
        "label": "Self Insurance Liabilities [Policy Text Block]",
        "terseLabel": "Self-Insurance Liabilities"
       }
      }
     },
     "localname": "SelfInsuranceReservePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r77"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Selling, General and Administrative Expense",
        "terseLabel": "SELLING, GENERAL AND ADMINISTRATIVE EXPENSES"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember": {
     "auth_ref": [
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the aggregation and reporting of combined amounts of individually immaterial business combinations that were completed during the period.",
        "label": "Immaterial acquisitions"
       }
      }
     },
     "localname": "SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share-based Compensation",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r425"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period",
        "terseLabel": "Vesting period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Additional Disclosures [Abstract]",
        "terseLabel": "Additional information"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAdditionalDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r436"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "terseLabel": "Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r436"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Weighted-average fair value (in dollars per share)",
        "verboseLabel": "Granted (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Unvested at end of year (in shares)",
        "periodStartLabel": "Unvested at beginning of year (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "terseLabel": "Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Unvested at end of year (in dollars per share)",
        "periodStartLabel": "Unvested at beginning of year (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]",
        "terseLabel": "Weighted Average Grant Date Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r437"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "auth_ref": [
      "r439"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value",
        "terseLabel": "Fair value of shares vested"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r437"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Vested (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "terseLabel": "Stockholders' Equity",
        "verboseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "auth_ref": [
      "r426"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized",
        "terseLabel": "Number of shares authorized and reserved for issuance"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant",
        "terseLabel": "Number of shares available for issuance"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]",
        "terseLabel": "Other information"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r432"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number",
        "terseLabel": "Options exercisable at end of year (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r439"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "terseLabel": "Intrinsic value of options exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r431",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Outstanding at end of year (in shares)",
        "periodStartLabel": "Outstanding at beginning of year (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]",
        "terseLabel": "Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r430"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "periodEndLabel": "Outstanding at end of year (in dollars per share)",
        "periodStartLabel": "Outstanding at beginning of year (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "terseLabel": "Weighted-Average Exercise Price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "auth_ref": [
      "r441"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "terseLabel": "Number of options that are vested and expected to vest (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r441"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "terseLabel": "Weighted average exercise price of options that are vested and expected to vest (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r422",
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Equity Award [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "terseLabel": "Exercised (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": {
     "auth_ref": [
      "r442"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by range of option prices pertaining to options granted.",
        "label": "Exercise Price Range [Axis]"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": {
     "auth_ref": [
      "r443"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": {
     "auth_ref": [
      "r443"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Lower Range Limit",
        "terseLabel": "Exercise price, low end of range (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions": {
     "auth_ref": [
      "r431"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Number of Outstanding Options",
        "terseLabel": "Number of Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": {
     "auth_ref": [
      "r443"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Upper Range Limit",
        "terseLabel": "Exercise price, high end of range (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested",
        "terseLabel": "Aggregate intrinsic value of restricted stock vested"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "auth_ref": [
      "r446"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Intrinsic Value",
        "terseLabel": "Aggregate intrinsic value of options exercisable"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "terseLabel": "Weighted-average remaining contractual term of options exercisable"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-vested options outstanding.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Number of Shares",
        "periodEndLabel": "Nonvested at end of year (in shares)",
        "periodStartLabel": "Nonvested at beginning of year (in shares)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "auth_ref": [
      "r428"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value",
        "terseLabel": "Total fair value of options vested"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationFairValueAssumptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": {
     "auth_ref": [
      "r431"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Outstanding Options, Weighted Average Exercise Price",
        "terseLabel": "Weighted-Average Exercise Price (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r441"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range, Outstanding Options, Weighted Average Remaining Contractual Term",
        "terseLabel": "Weighted-Average Remaining Contractual Life"
       }
      }
     },
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionPlanActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Shares Paid for Tax Withholding for Share Based Compensation",
        "negatedLabel": "Shares received in lieu of tax withholding payment on vested restricted stock (in shares)"
       }
      }
     },
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StandardProductWarrantyDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Standard Product Warranty Disclosure [Abstract]",
        "terseLabel": "Warranty Costs"
       }
      }
     },
     "localname": "StandardProductWarrantyDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "auth_ref": [
      "r296"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.",
        "label": "Standard Product Warranty, Policy [Policy Text Block]",
        "terseLabel": "Warranty Costs"
       }
      }
     },
     "localname": "StandardProductWarrantyPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity.",
        "label": "State"
       }
      }
     },
     "localname": "StateAndLocalJurisdictionMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsContingentEarnOutObligationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "auth_ref": [
      "r1",
      "r176",
      "r180",
      "r181",
      "r182",
      "r183",
      "r184",
      "r185",
      "r186",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r194",
      "r195",
      "r196",
      "r197",
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r205",
      "r210",
      "r252",
      "r274",
      "r276",
      "r277",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business segments.",
        "label": "Segments [Axis]"
       }
      }
     },
     "localname": "StatementBusinessSegmentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r0",
      "r48",
      "r65",
      "r66",
      "r67",
      "r119",
      "r120",
      "r121",
      "r124",
      "r130",
      "r132",
      "r160",
      "r215",
      "r353",
      "r358",
      "r448",
      "r449",
      "r450",
      "r490",
      "r491",
      "r544",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r665",
      "r666",
      "r667",
      "r689"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Statement [Line Items]",
        "terseLabel": "Statement"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r119",
      "r120",
      "r121",
      "r160",
      "r620"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesReconciliationDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationTables",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued or Granted During Period, Share-based Compensation [Abstract]",
        "terseLabel": "Issuance of Stock:"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharebasedCompensationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r20",
      "r21",
      "r353",
      "r358",
      "r433"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Exercised (in shares)",
        "negatedLabel": "Exercised (in shares)",
        "terseLabel": "Issuance of shares for options exercised (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r48",
      "r353",
      "r358"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Issuance of shares for options exercised"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.",
        "label": "Stock Repurchase Program, Number of Shares Authorized to be Repurchased",
        "terseLabel": "Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program"
       }
      }
     },
     "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r21",
      "r25",
      "r26",
      "r111",
      "r213",
      "r214",
      "r568",
      "r602"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "BALANCE",
        "periodStartLabel": "BALANCE",
        "totalLabel": "Total stockholders' equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest [Abstract]",
        "verboseLabel": "STOCKHOLDERS' EQUITY:"
       }
      }
     },
     "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity"
       }
      }
     },
     "localname": "StockholdersEquityNoteAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "auth_ref": [
      "r61"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "verboseLabel": "Detail of Other Current Liabilities"
       }
      }
     },
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDetailOfOtherCurrentLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "terseLabel": "Cash Flow Information"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesCashFlowInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SuretyBondMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Surety"
       }
      }
     },
     "localname": "SuretyBondMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "auth_ref": [
      "r483"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by specific tax credit related to an unused tax credit.",
        "label": "Tax Credit Carryforward [Axis]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "auth_ref": [
      "r483"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name of the tax credit carryforward.",
        "label": "Tax Credit Carryforward, Name [Domain]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxPeriodAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information about the period subject to enacted tax laws.",
        "label": "Tax Period [Axis]"
       }
      }
     },
     "localname": "TaxPeriodAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxPeriodDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified tax period.",
        "label": "Tax Period [Domain]"
       }
      }
     },
     "localname": "TaxPeriodDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxYear2016Member": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified as tax year 2016.",
        "label": "Tax Year 2016"
       }
      }
     },
     "localname": "TaxYear2016Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxYear2017Member": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified as tax year 2017.",
        "label": "Tax Year 2017"
       }
      }
     },
     "localname": "TaxYear2017Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxYear2018Member": {
     "auth_ref": [
      "r467"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified as tax year 2018.",
        "label": "Tax Year 2018"
       }
      }
     },
     "localname": "TaxYear2018Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TradeNamesMember": {
     "auth_ref": [
      "r508"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.",
        "label": "Trade Name"
       }
      }
     },
     "localname": "TradeNamesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransportationEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment used for the primary purpose of moving people and products from one place to another.",
        "label": "Transportation equipment"
       }
      }
     },
     "localname": "TransportationEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TreasuryStockAcquiredAverageCostPerShare": {
     "auth_ref": [
      "r359"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased.",
        "label": "Treasury Stock Acquired, Average Cost Per Share",
        "terseLabel": "Average price (in dollars per share)"
       }
      }
     },
     "localname": "TreasuryStockAcquiredAverageCostPerShare",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_TreasuryStockMember": {
     "auth_ref": [
      "r47",
      "r359"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.",
        "label": "Treasury Stock"
       }
      }
     },
     "localname": "TreasuryStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TreasuryStockShares": {
     "auth_ref": [
      "r47",
      "r359"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.",
        "label": "Treasury Stock, Shares",
        "periodEndLabel": "BALANCE (in shares)",
        "periodStartLabel": "BALANCE (in shares)",
        "terseLabel": "Treasury stock, shares"
       }
      }
     },
     "localname": "TreasuryStockShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_TreasuryStockSharesAcquired": {
     "auth_ref": [
      "r21",
      "r353",
      "r358"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares that have been repurchased during the period and are being held in treasury.",
        "label": "Treasury Stock, Shares, Acquired",
        "negatedLabel": "Share repurchase (in shares)",
        "verboseLabel": "Share repurchase (in shares)"
       }
      }
     },
     "localname": "TreasuryStockSharesAcquired",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_TreasuryStockValue": {
     "auth_ref": [
      "r47",
      "r359",
      "r360"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.",
        "label": "Treasury Stock, Value",
        "negatedLabel": "Treasury stock, at cost, 5,032,311 and 4,935,186 shares, respectively"
       }
      }
     },
     "localname": "TreasuryStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_TreasuryStockValueAcquiredCostMethod": {
     "auth_ref": [
      "r353",
      "r358",
      "r359"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.",
        "label": "Treasury Stock, Value, Acquired, Cost Method",
        "negatedLabel": "Share repurchase"
       }
      }
     },
     "localname": "TreasuryStockValueAcquiredCostMethod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnbilledContractsReceivable": {
     "auth_ref": [
      "r49",
      "r618"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Unbilled Contracts Receivable",
        "negatedLabel": "Less-Unbilled accounts receivable",
        "terseLabel": "Unbilled accounts receivable, less allowance for credit losses of $715 and $784, respectively"
       }
      }
     },
     "localname": "UnbilledContractsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRevenueRecognitionDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r457",
      "r469"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrecognized tax benefits.",
        "label": "Unrecognized Tax Benefits",
        "periodEndLabel": "Balance at end of year",
        "periodStartLabel": "Balance at beginning of year"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r470"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "negatedLabel": "Reductions for tax positions related to prior years"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": {
     "auth_ref": [
      "r472"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities",
        "negatedLabel": "Reductions for settlements with tax authorities",
        "terseLabel": "Reduced provision for income taxes"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r465"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "terseLabel": "Interest and penalties accrued"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r471"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "terseLabel": "Additions based on tax positions related to current year"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r470"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "terseLabel": "Additions based on tax positions related to prior years"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails",
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesProvisionChangesExaminationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r162",
      "r163",
      "r165",
      "r166",
      "r172",
      "r173",
      "r174"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of Estimates"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": {
     "auth_ref": [
      "r479"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.",
        "label": "Valuation Allowance, Deferred Tax Asset, Change in Amount",
        "terseLabel": "Increase in valuation allowance"
       }
      }
     },
     "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureIncomeTaxesLossCarryforwardsAndOtherDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_VariableRateAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of variable rate.",
        "label": "Variable Rate [Axis]"
       }
      }
     },
     "localname": "VariableRateAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableRateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.",
        "label": "Variable Rate [Domain]"
       }
      }
     },
     "localname": "VariableRateDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r135",
      "r151"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Diluted",
        "totalLabel": "Shares used in computing earnings per share-diluted"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]",
        "terseLabel": "SHARES USED IN COMPUTING INCOME PER SHARE:"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r134",
      "r151"
     ],
     "calculation": {
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Basic",
        "verboseLabel": "Shares used in computing earnings per share-basic"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails",
      "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails"
     ],
     "xbrltype": "stringItemType"
    }
   },
   "unitCount": 7
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(c))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(f))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(m)(1)(iii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(m)(2)(ii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21728-107793"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1828-109256"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "44",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2062-109256"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "48",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2538-109256"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "48",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2538-109256"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "51",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2574-109256"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2597-109256"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2600-109256"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "54",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2603-109256"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "http://asc.fasb.org/topic&trid=2144383"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=124437754&loc=d3e543-108305"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "http://asc.fasb.org/topic&trid=2134479"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(j)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8844-108599"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "34",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8981-108599"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "http://asc.fasb.org/topic&trid=2134510"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124256539&loc=SL120269210-210444"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124256539&loc=SL120254536-210444"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124266218&loc=SL120267834-210445"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(c)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL120267845-210446"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919260-210447"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919272-210447"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL120267966-210447"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL120267969-210447"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 6.M.Q4)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122651532&loc=SL122037091-237805"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124268681&loc=SL120267897-210452"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13A",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=125515542&loc=SL120267917-210453"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=125515542&loc=SL120269220-210453"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267853-210455"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267859-210455"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267862-210455"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=123351718&loc=d3e2443-110228"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(5))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "15",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123389529&loc=d3e10037-110241"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123377177&loc=d3e11281-110244"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12021-110248"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12053-110248"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12524-110249"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=99376301&loc=d3e1243-112600"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123465755&loc=d3e1835-112601"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.1)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466204&loc=SL6036836-161870"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "http://asc.fasb.org/topic&trid=2208564"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.14)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21506-112644"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21521-112644"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21538-112644"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.17)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130534-203044"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130561-203045"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130564-203045"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(i)(1)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "710",
   "URI": "http://asc.fasb.org/topic&trid=2127225"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "712",
   "URI": "http://asc.fasb.org/topic&trid=2197446"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123453770&loc=d3e1703-114919"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123453770&loc=d3e1731-114919"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(f)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450678-114947"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "http://asc.fasb.org/topic&trid=2235017"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=123468992&loc=d3e4534-113899"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11149-113907"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11178-113907"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "740",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120384911&loc=d3e23163-113944"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29,30)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "217",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=124434304&loc=d3e36027-109320"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3(c)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3(c))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(2)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e7008-128479"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "740",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123403335&loc=d3e9972-128506"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "740",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123403335&loc=d3e9979-128506"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "http://asc.fasb.org/topic&trid=2303972"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591551-111686"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591552-111686"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.8)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.9)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(1)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=SL6742756-110258"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=SL6742756-110258"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "60",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594809&loc=d3e13220-108610"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226049-175313"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918631-209977"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977"
  },
  "r587": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r593": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r594": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(2)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r595": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r596": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r597": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980"
  },
  "r598": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971"
  },
  "r599": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888251"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226000-175313"
  },
  "r600": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r601": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r602": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766"
  },
  "r603": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314020-165662"
  },
  "r604": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r605": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r606": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r607": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r608": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r609": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "210",
   "URI": "http://asc.fasb.org/topic&trid=2122208"
  },
  "r610": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r611": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r612": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r613": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=SL51823488-111719"
  },
  "r614": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(1)(i)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109249958&loc=SL6224234-111729"
  },
  "r615": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733"
  },
  "r616": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "910",
   "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991598-234733"
  },
  "r617": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55415-109406"
  },
  "r618": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55302-109406"
  },
  "r619": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
  },
  "r620": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
  },
  "r621": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
  },
  "r622": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r623": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953"
  },
  "r624": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r625": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r626": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r627": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r628": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r629": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.13,16)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r631": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r632": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r633": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r634": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r635": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r636": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r637": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884"
  },
  "r638": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630"
  },
  "r639": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067"
  },
  "r640": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=123345438&loc=d3e61044-112788"
  },
  "r641": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(15)(b)(2))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r642": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r643": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r644": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r645": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r646": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r647": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r648": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r649": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.15(a))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067"
  },
  "r650": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.16)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r651": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r652": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r653": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r654": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r655": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124505477&loc=SL117422543-158416"
  },
  "r656": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438"
  },
  "r657": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=d3e14931-158439"
  },
  "r658": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439"
  },
  "r659": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067"
  },
  "r660": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782768-158439"
  },
  "r661": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
  },
  "r662": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
  },
  "r663": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441"
  },
  "r664": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=122147696&loc=SL65671395-207642"
  },
  "r665": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r666": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r667": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r668": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r669": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067"
  },
  "r670": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124508989&loc=SL117422267-158473"
  },
  "r671": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195"
  },
  "r672": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=123364037&loc=d3e3115-115594"
  },
  "r673": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629"
  },
  "r674": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916"
  },
  "r675": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916"
  },
  "r676": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916"
  },
  "r677": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663"
  },
  "r678": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691"
  },
  "r679": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r680": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r681": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r682": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310"
  },
  "r683": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f"
  },
  "r684": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f"
  },
  "r685": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r686": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r687": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r688": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "848"
  },
  "r689": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(8))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7(b))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.8)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=114868897&loc=SL114872001-224240"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6911-107765"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3000-108585"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>100
<FILENAME>0001558370-22-001753-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001558370-22-001753-xbrl.zip
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
ME=JS.4QM^B\@X4SXT7JNG/R, A\96:G.;[.LBLZ0"_(#Z0KOP:ZA-Y.;T$M
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
MY&:07*#(+&Q<*W4G*Z>)AIG:JYXAWFRFW ^/I49N]$%$XGLER]2NB09ENU=
MY9<0_D!7#[ G3[:RUG?4]_'P )%T??'<Z[7-EX$?NH9'&FB>K24>UNFFG:QB
M100 %V:@CV2-4I1MBRBIVSU!R*%]318@'!_[XOV,]%1=A[#='4)RT)+@_<4G
M\ZKCF JJ]G88NYQ70W=!W!F^38_N]I\]SWH%Q>QC!E]94KNLL?BL0W_A4_,;
MWOPRO3O'3 4"U;H!EMSCWHK-EO;;Y*&'O*U7:B9^X-X&T'W ,@GGEK\L5$*2
M.0QO=N>EP:/,A2<O*J6YI\OP>M_ .TGM"23]4GGZ(2)3UCO^#9(#\]NZ*%<]
M;5MDQ$<12;(+KA(Q1WJ($@Y?Z#I==;PQN(:^(R]>'=U!RA8N9.2Y,"YLXO/A
M*4:Q?Z"I%\JTB+<:6#:3,>Q2*N:$#5][NUE19MKH;H0/'Z&;)\:LST&]0=9#
M1%]7C,FKMZD&4EE;K8%T$,C&.DAG/D0M/%%."3/G, 6ZIB_4\9:8B+X?H@W!
MY]Z/E[%C2,F#PAOD?F,]_'R*:N!BUOF7_P=02P,$%     @ F(175&(O[YF2
M&   G9D! !0   !F:7@M,C R,3$R,S%?8V%L+GAM;.U=6W/CNI%^WZK]#USG
M89.J]5@77Z=FDI)E>^*4QW)9GDSR=(HF(9LY%*D I&WEUV\#)"52(DB NA @
MY^4<#X7;U_T!:#30P)>_?$Q=XPUAXOC>UX/NI\Z!@3S+MQWOY>M!2 Y-8CG.
MP5_^_-__]>5_#@__<?EX9]B^%4Z1%Q@61F: ;./="5Z-)W\V,SWC.\+8<5WC
M$COV"S*,BT^GG\X[Q[U/_=/S;L<X/(Q+NC0)Y/0]@Q79^]1=_#*,2_6]ST;O
MJ-<_ZG5Z/>/B<^_T\\F%\?!]D? [M'+BE*9T'>_WS_0_SU"E 7 ]\OF#.%\/
M7H-@]OGHZ/W]_=-[_Y./7R!_IWOTC^]W8^L53<U#QR.!Z5GHP(#TGPG[>.=;
M9L!DE<K^\8S=I(#^T:(N;@KZK\,DV2']=-CM'?:[GSZ(?1 WD?XL4$F2G/[J
M%*1/88G2KY4?RZ![<7%QQ'X] .D9QA?LN^@130SV[7,PGZ&O!\29SEQ:%OOV
MBM'DZ\'$^0 HO6ZW%P'YPS@ /5*B#'V/^*YC4[5>FBYMQO@5H8 <&+3P'X^W
MF898_G3BXX#,"60G(3'IER.:\DBD2(9/2')'NP"X^$A&D]$,8<:6+2'EE:T0
MY*%)7F]<_WT'B%-%[P_PE4,LUR<A1N-P.C7Q?#09.R\>##R6Z04#R_)#+X#!
M\@%:;#F(W"&HEERAP'1<,C1=JR<MB&U468> !M:_0X<XC)-Q:S; GEM:';"^
M^;[]#E/:P+-O;6 BZ,%\=M&M!^/IBP-_#0B!@><>!24_;RZ3[3>E#H$^8!_&
MKF .**Y!QS/:O3>736&I=<",*H>!.GA%>!AB# VZ X4X+I :;:&'B%90#_CG
M8/3L.B_1%'43!E1%YIP-Y=N +E)\'<"CP7@Q<,>SM/?"OD?]#QBZ51Y4K[(^
M 7TW06.L,:,)^[(#B0C548<(;F&!-45/Y@<B,&J].73MM3GHPE)KAOF(+-^S
M0/:LOVX5*Z?HF@%?H0DLA)$-_XAZX%;Y+5M1+>9RX%N_O_JNC3"A$W(POP^G
MSPB#,?MJXFU(0;@&:?@6&-&ARPAU![_%D&GU6UVHIH2+/@+DV<A>?'4"6EFG
MT^UTC$-C41S\/1S=CT=WMU>#I^LKXW)P-[@?7AOCOUY?/XTEH#*@ -7UK4Q#
M7.K?\'%6S;0X N6QLB8F>68%AN3PQ31GU.O2/4)N0)(OC!*'G6[LT?A#_/FW
MB*!)T:[YC%SF8\K\>%1?RV(;JK"!<9K?3OMGY]W>\?EQMW]Q<MSO'I^EFI[B
MSP!G49C82LJ'/]<HE=56G.*(T+F=EG;H  V2_!/L3]?E%U?FRS3<Q]"'OAYT
M#XR00'O\&:W+= ^,=^2\O ;LEUKT0I?\8+O0_]$>_F:ZU, ;!$,3XSF8.'\W
MW1!Q]"645U4]%FEK7</5H8IH?H8='^RH>7TTN(0U+[)A* VP:04PXR/ ".M9
MWEC"3=\,=<O!BU7<$U-QKR85__">,ZC($A9'R04YFJ%F68"QHOMJ*_J>H;%1
MBK;%\RX_0S/4+(DOUO*Q<G/UK?<&;?;Q_![Q5)E.T@SEE2**U76BG+J24>6G
M$[P.0Q+ @A(S"0"2X@XID+,9RJT*--;YJ=H#\0-&,].QKS]FR",(S$?F1Q99
M"0GDS,KE!.32UY  58'&!#A3KM,GFR0/+MU)3.V4\,?LHBRJ:CE?EY(X1.SF
M6I28=? _TL:,)C]B5S]'BX5Y=%*C/! ]S.)D:Y>CO^1GG515V&:%S=BUW?+K
M#\L-Z8FX$B6)9-5)@97Q*&OT)KLEBPV4!3".2OD9=%*D) H][->4+09+:*O0
M8LU-JY,&Q0$H:WNF-B;!_%K?O..HKCQ;W6C*&YY5U&F_VSNOF6FBRDASL R0
MLKM(J887+VS7$RJMN=S&%>JM")4>6T%WOO?RA/"4G@ K4>9Z2J6U6=3&'*4*
MHI/3:EUS>7RHF3R8<^H +]F(STW<(-U* %3627$]G;G^'*%'Y-*C+\)#<&F^
M!NFY&E81?X8R.PH)IKG\EL)JUJPPSOK=_JFNBJ\,5\1K4O]H/D;NY-8C(::G
MW1X10?BM9$@OR-$@M<NB5-:-PE:CPD,Z)W6#%"N#4,2Y4KME7>I0R4^LM$HK
M&-8ER)0UOK*;)(N9I=Q-5I:O"0JN!E*/7:0U1V]*/!).[FRN)BB]"D0]C*W5
MN4?,%YZ;(2N%<Y#EA7:*ED2GK(DE[!]?3ZBT&H6]S8*XY$XWUW?N)AY_&*JB
MJ(6<E.KI4U WZTH51:?L5L+0GTY]KU2+J\D:I$(A:,I:QD\8C+X0STLUN)ZP
M03H4!%=J\Q[6I<:!;3M18QY,!XRZH3ES M--<9.W=U":L4%JK@A6V:-9CS2@
MUT/VM8D]6+^1@66%TY#YSL&^=RR'9_*69\P*X@($<:*KUBN"%;>$OQRMQ$?O
M-&B:>^=52@G<Z.E><?3T^ G^]_WZ_FELC&Z,T</UX^#I%A(<J!U'3>_W8>O8
M.Y_P3I^LI*GI*&72@!N@-MWT<+P0*+E4XR4"+J2O,[C^"+ )5'0\$\]O*4/H
M HYNE_@N-/#EU@L01H0?8+2S&M4;(7)ID#V_N5]I*&NU+UQ^I=TF)Z5ZBM^W
M7@M\J"5B4I81WS T^0'[$Z[-D$JA'@-$Y;^NN3)8RFKL$;TA+^2>MDQ^5D]7
M91+/L^ *L"BKH*%/@M$D;CO7+Y)*DX%WVNEW^W6?OY9753F@4E=(;8OH,6)#
M_S?DP6!"[Y0<V%/'<TA AY8W%$<]\D]L"&163\751\X-$*O+@6^P5*0R&'E7
M#IGYT7VKHTGA34V%>9JD<7F@RI[- VO/S\JAN'MSTZNGW_JM83EA*>L;IW=9
MD(#Z22(0I6OM_.3J,41./WGK: FDRMIG2:N+._Y*JB8JLQR@NO/U94@<#Q$R
M]*?/,'K1=D4CWDOL-G7L>-0;8&S"5^8Y';[2/V^]P93&%8PFG"R+LU!=#CGV
M5'OS2%>GX-3=Q6-G=60MD^),60ET00)U1X=L2IT*>)7=P%N88''K+V$MQ??
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
M>/_Y'?WS)/LSLX'(_^<U6CK!)=D_DUTT :(BTYP6-9D6M'G7"_C9G!<E=Z$
M>_%G+N#5!F6H#=113JF(/UM++10NCS5-Y$)'=9 'U4X!+?!P;V9CG!1,+/E4
M-:_DJW_NT^+O741V*7[$$4AANQIWI2U[1FPW^^<PWB"771_A2JRT+1]!6>O&
MLJQ#Y$@#@-[$6P(P%7(EH$-)_'FZ3@.'1BTO%POD)K>(0.C-%U,OHYI  72Z
M<<5%MR,L*@AU1:]C(TI8TB)#3D6FP/6J87K(Y JGCT0'VF?LUN^M1W:@0&.C
M4<C.G>HJJ-5'Z/HK>PU'A I$7+V3MA4B+6S=6+M,F1!I -.;-FD"7]PD"8&&
MH#W[$_QIFJS8ENW&62.)ZH@["$5(W@4:[E+=D74QQ-^B)FGQ)-('J'=MDB%0
M5"45X! TBD"7+9@2)2JU$<I-K14 I*3:46FE1LRB#HA(&DFG[5W2*V 6A9L#
M'A!YSBZ[%K.[Y++-;R\3!W$/8(@K5PA%+S,B6%XG=%@3&8$TA/Z(4*CHD@KT
MH2('=S1/5! >V/_&W?F6?AT Z$^E0X,JV-FO8L /O[?:E_-(%'&GZ76'70 K
MWT97P(%@RV<48B>8;C:!G]6ER5:<ZH[_ 3MA=N%+NA-H,IC$2VXZW)CHJ=A=
M-!O.(DVM[DI:RD=D!Y$!=C/-$"_O=)HC/-3*=HLC+W63.;Y'^,EW18L<KQEW
MV1 U' 0KFL:^@R,6AK6%;67X\5NW6B05)(XTYN]U]>3#FR^D4CB'$O9/SA\1
MWE>"$(AZO1%7$/C-^L6'.L?S10D2H9@+VW*QD[9N)>92\D8:L_<JY#QH<Q&7
M0@G!<]S'N_.R8KN4;*U3%EX?]2F+J-> 1,@@D?IPI39B)*NM[)VF*(@=28 8
M[A2%#W31(:H!"T$K+HA/]L2\L5D8)YB5.:5ESB1*(>LB%!=5)P@4R$LD/9 Y
MI1HBZZ)! 7ZGUOJCR9=('Z3>M4F.0E&95*!#T*W]Q::S;:'(U!5&?Z8H='DI
MCP8]A7*FV1< 67C@2?5.HZ>:+/*^K;70C'61,8"]ZZ060D75U$0$F(;N__S-
M1YB0:[6]1D\HT%-226<=/55T!T"?8I&\.K3&2BL<PTA]I:/85&0]]BIT60KM
MD%HMQ4ZEV%*L@*EX?M=C>QXXL6S;)^VCH]#\7@"(4+CNLF.B-P_OD)MB[(?+
M,R?VX\]A]!@C_)15X=JD2;D\3A4Y/=WO:EXU,[J<V::-D0H:S[1TB=B0YHA'
M"*X5ZI( P"Q7P> RO(RW#OM>AMN&4K_A2'$;8:97R1[*_1^'ZVW<P_T&(PA)
M9#A&1UL)'BNCQD "V4X4D"KJNB$R$+3V-^0MB?FY0+&_S*JH2925WU@H@.+F
MD/"5>@2BY@8X6UQ_E?2/] #I78M$@!>51P8P!$W9/^]R*,XL415!:Z'<2-K#
M0CDK5BX/."O[&9&AUK.U'JF9$QF"U+M&"5$HJI06Z!!TBRZ1V<-0R%V%_I^I
M[$(,O[%0I,3-(>$KU2=1<P.<+6J/DOZ1'B"]ZXP(\*+*R  >_++_KRA:8F>S
M\EV'%^F5MN5FBDA;]XQD=MQ<!$1\\5_4EH^DK+6=B_\28D<:0 QS^;\.]+X
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
M*]+VY%V&2^#30:44PC VLJ--]C-!E:!R1F#Y:L$E. P%X6BE2_DX8 INUW)
MXXI2'EW[3\B;A8D3+GTBU=,X1LG>>9_&M+C? 6.RYW[T0\=,,*S- R%!JKG4
M6",#@/T4V^?5 KHF.ZOWG)T5&_6$#3LICCN:7=90%\;-X]RF]3%![8:4%QPK
MH(,PN^,NW@EF'\65W*XK<L(0H<.IO/H"H* MA&U5EYI0OA/%)0$$3AZO1(UK
MER0HOUA(F)NZB?]$?#*&L[YKW'Q@"#LH37FP@"W@793EVI^M9<?"Q!#V699D
MRP(U ,O>310^D54.96E[#6V0WB 0KL"8RH0>9@"VT_N@0NC-\=()_;^R][CH
MK>Y ;T/]W>G[T_?5#74^[L0)O4EQY,F_[<;N;$O-3_*MA]#*&/,VSB8=>RL1
M=8LC+W63.=ZE$PFJK?&;#;^5-F=&7O")C]%0E;IVT%#(=_"(*\9*V@*HHR83
MJ KM>1ATD)#/+-8LC!.R,V#R, MOT'.PI74DB5=.-U97CNL'K#*L\!RPV3!#
M%T-3RM4^C;X1>O:Y]8G 1M8%FJ1_AS:.CPGDY(_ <=F"N4-"R"6S[D/N/8RX
M8X96!SJD,K&B_;]IY_YC LW0VZN-YMK3?^R ST<GH)=BGE"8YOG#\0VBQ0[I
MZ_#.DNNRJ/L,J4<M^:=&#H!;?9^NUP[>DLVAOPS9*[=A,G7=**4O4"]OH\!W
M:=GST+N,$W]-]A;Q- BB9VHNKB)\CI&7W98GYL7($__ .=K*0)E$BTD!F,D!
MFDD.#O/5]P#1?,,<I@G!>))!-<G ZMZ-M[YEW6$<WT0$N^N(;+\)_:]\:J,)
M%>Z0B_PGMD'32D,T'.VX/6B:=]B(;<<]P[>V9]C-D(=:Q+L"0</Q^/T"!#J^
M);W?5;!<1#:U;/,E;SX:-UZ.!KCX[ ZO UKS9(6P]+A6WF7(>+PVH_10 <>L
MTL)&@&9KVV$]$VW0S+L/=VQKBB(_F&[H 8SVU+>X!;B(TL=DD08Y[@<LZ8VV
MA;049H-Q()SIMA&6!BC#LP=:.+3B.8PTG,9R;LYQB&RN 7F^HN>^LS"[Y'C8
M_%^^T--D1(,=.#X\,258!QJ,!T+KK0A#<QJ DP_BQ3SY=!O&(8C8AY-T@9!3
M887+<C3!,5(/YR\$9N+C+(1NGNDH$-(E>K3P!<P[W@'KP2.XA]]D  A%05MQ
ML@G2'3.13!DX<<RBX'18LKL0!-XY##3I#*'^5FOFF2 \RE.7.S_^:GK"\KW%
M$Q8Z_VB.4LZCD)ZQX:RJ$8%<=E(B:CQ06?L*,&?;,Q2Z*\*VKY)[2.IN< Y,
MY,PI5[57807!>ZI#F<,HO8&D[@;D-I&N2,HY5T6N@X.5PGF[^%"%TPA"I$%7
MB'C)!9!N[7"$17&%4MH#SHN1K:P6K&N6=52VBN?1I3W@FBG9%4@I2B"XE,9)
MM$:X!JC\54E5+Y#&KBZ )5:I<!HJ2X+=@A&DK11^&\"("8);:B-6 7U0R@H?
MCB[]"B#'I"8')4H.+:6?"%76Z5I(S<KO0Z>7<%B?D[,"*0@K7=6HVN&?:BF]
MAG#\K49#OG:._#S[/G%"S\'>+B_CBT,OVB?;0FU,U5M*VOTAG&29<=L N8Y#
MHOG465WJ^>+:>8SP=)&@77*?'RXY6SZM7A#<(F,IS#>#6AB".W6J2>$A,_Z]
MKO$L=8%P?-C2D);P 1"GWD48K@B.!%8F?#%]MB!WR6/2U%DN,5KNHNZ[#F:1
MZH^G'ZJ1ZMTX$TK=R7[JR3.9>[*?/.M4F)\&MO.>8XE5"R@HBUC+NQP3^,WB
MT3H,.&;I?V-9^I^0NW)"WW6"?"[QO5!ATZ&W4OIW0(4H=.S1D4V!2PM0:9!9
MW'0T.?IB%+IVSO0"!<X?$=XOK@)KSFL$)TIO8LMYF Q%>EJE;;XH022TY)*V
M "RY6(ARNDO@MV]@9J&7TA)W3D"TE(A3LLWG%!H:=9>A[;I26G*#HT:E:_M.
M#"-31;%9K[88VIIK$[<&><>TG"\69,DX2WWV8IQ2C.7-A[XNI4UE.1H=D_PW
MY 3)RG4PNB<K]P%4(=%5'89,>34BNPJ1C@G_:_2$<$C#Q$J2BYL.F95J1&PQ
M"IWGF-(0"2T"ZZ0T@L@R#L.$+!0$2@J/D.K:/8?,+C5B@C9&'?/D4QHD_I6S
M]H,MJ\03TY?\$K*$BS>@JAY#/FQIQ ,E)N""V.SBKM1&25L.^=ZD-F>D&(#C
MR+X 9EZOYSX[;^1M:#7[P$G@T-W?:B(&@E\91/)J_>4V0#+.M"2MQ(TR&O;7
MCAOT7*P#(5PQ!.U '(+RQ"%?'P1P=[V))>RDER/VFQ =$NMT@I +(*6W#A(=
M$S]_BAI'?Y"-B*2&)K\=A#-A*8D%</=#U7,G".)" 4CB='V*")7(U.%216JM
MSA#N>.K07PL9<+Z.P!VX5N2@J;L-EXFFBU+YN7.95S3:K+0=&B(N'GZ&L(XT
MX=L!@X[-W2&M9@]8,:6EF-'"L7=&O2$L.":\,$9P#%E)^;>[EP-#[]IW'G?U
MI4U3DVIE2G53D_*?)AD4[$9M 8[1)"CM\)U1YCG!=+,)=G>LLW3#\W2=TJK>
M3^ARL2 NS -V0O4KZ6T''<0@FT,KB3DT'0Q.XI0=P2@N"$UI L$7,X==&O)H
M/AR0Z$@[96DG%:#N\3F!2\'</:RT4YI?4]^C^XQ9F,%^ALBRAQZBC>_^</J#
M_(I?BP$A1'C:*DHI@;H%+2 (1V,3JMKBV1AXN$V@/;)PMAN-UZO1;B3S$G,\
MAYXYIXKK30;](6Q%NY$> R* BQ,)8;Y!R7F*<2:O7-;K](2PJAC+>.4>CAK+
M\7!U%KH8D>WB!<K^I16P\AWQKGS9+,P/K<ZC]:,?,OTPE8'F\T P$]U(3'.:
MC$*^"G5+#:N_-AX-0D3-NJQH8=[]0PGZ,LP(<)$2+YIT\_P,C-\)H&G\.70/
M7W'BIQW- ^%HJ9%<=$@3>#9$0J \&+IMX7YRQH!@+_IW03F$@"<,,KC-_=!Z
M5^B.J%#B5<M%'=5Q,;<'C]3"7-"]TO;B\\J]TX.:[*CXX*_1 CMK1.SN(L)K
M&A6</P9^=C)Z3_X?+WSD[<PU<<JB9>C_5:N)W=.<$%:NCLU7:QJ-2PZM"-;0
MDB+P?3OR<0PI,89TA#M$R4H+>_.DW3@CX;NF&0E[."8%0"8%2,:6DR G+-U/
MT[?%B;$A3>:+S*PXKF9N0NO!ASQ1:@[\?>+@Y,))9#5[;4\"+J?!DF!Q3I^L
MT>Q8]%2S)H1]EAZ+I!Z+I'[#15(UB\F\R E:_GWHJ@\R@I8AA;#G:&W2---'
MK$PP>!J)13)97=#'GE:B18 V @8C(@= B@"&/;3@/EPL:",&Q5$@A,@ "$21
M).,4#1E]L@"2J BPO>$!1=&@KE%[6G5>B29$SW0]W-W'+%[%7&+$%L'X >$U
M)[_ H"^$ARJ[X;@A(: :C5L:NJ05,BD!/)\ W,:],!\-PF.8O9@$<]*\BDC[
MPDF#!%# ?0?1,? .+?!^C(4>8Z''6.@Q%GJ,A1YCH<=8Z#$6>HR% I$BN'O7
M8RST& L]QD*/L=!C+/08"SW&0H^QT&YCH5>.CW]W@I3LU!SZF0FT663SN]/W
MU<@F'77"AIT4QQU-?')/%5[IMQU&WCR\0VZ*:6E/TN F"G'^\<R)_5@6HK0X
M_C 50\D:]L2R\F>LE"_E+GUX5)+L*^\")W77.NM+)4:E1("P:!P@S \D'LB<
MTAIC\BY ZHCI2"R?4SRD('!J1E\507%RYR3H_MG92*M]B1I#N.JJ(W+E0FY\
M7" P96\]SK:%A>\*HS]3%+I;B7W4Z@GG"*A3,ZE%"U#LYH$I-9I:/8'83@.A
MYG)1AB)4+L9[R97:5;VN$*RL@:BJF%A'$"P7BS;'G)&\WA#BYS9YR<,1%#O/
MMOL_?_,1)@1;;:_)CCO06TREG>$\R=37>BHE!RB^%X6T#K7QXBH9 ]XRJR'Q
M2L46XPN*S;-PDR8Q0^^]GH7F]8"ZPBHEE\M&'H90F?;!F&D?H"^EK9GV 3K3
M/AHS[>,@3%,MEC:9]A$DT\ZVAZHW@1/+GI]4]!G UQ$<T/;EZ_"H (JY<K09
MGI_#Z#%&F-7X9,)*J]:$+NG%SI"J2.JY1=W-"\^5$JL/5VJZ(TTWE5<)4/3!
M[RBDCQQC!D#A8H#P\3W]KJ \JZX5IEA758\\H.Q)*3['J&$<<"[T&F#!$.1W
M#!!L+M ! HMO(\SHG^RAW?]Q.'B7.G5&(\ SXS+!+G+3"$T(G+V,$W_M)&B^
M:,Q:LR$@&/0&XEQDLAG"$+C\&_*6Q!)=H-A?9K50)999U'@ @RS(I^K4((O0
MA\E'J<<M;@[$PLKE4LX52.'$FRC)(4/>--X!>TCUN"0^8+3V7?J#W)@V&@F"
M356)9I&9C9 \E@JL6L<?>[2.QQNRQQNRQQNRQQNRPT<96EBU:\4E6<MS#'=/
MMA-B<:,6[=>8_F_+<J.9O Q=XJ<PJ*;K**T]ZJ+;"=0QHVUYT"5"QY?-#B#<
M(/8*V3P\?"7E&[<]J$/&;EG&Q1_<7;)S)UX1!.D_EW^F!,Z@=.1Z"+H(#+M!
M?PA72#LWWP;T "D+]^P!*4)"4?!-(@<:?2%<*NU%!C1HT;'ESI]I8@\W92^K
M"$Z_#@1)SIR WF6\7R'$WA+@6'A+XT*X/=KI2F")3N"LQ&$YV\,]7QR^W)_"
M"@R%?O=>):3#B(_45NB3HV-S<>TOJ)>98BI_^YJ%-RFETGQQN=X$T1:A^#QZ
M0KCV3E63 7IE[T\#& !3@@S"X"O'1<)-F+I+KTS\&0P3BR0 9Z#K[L=\44)#
MVX6K]>LW4GD*QG^K$:)C7?V"_.6*GN 0T^ LB=S%R7QQ[FS\A/N"MKQYOTSK
M.VZFQA^<@EK,>CMW I<]HQB%=U$07$7XV<&B5R1[F+=?6>L[)M<C(>$*;2%A
MB];6KN$7EQ&,[RITW3FT;"R5H-J="\)A?F^ZK[I&9H&>KT9&!6C.XCA%RA,M
MNW.!.M,8@XPJZ/G:9?0>)4EVDM>3H)8F!'6<,V)I+1'UM8OLKX2W]&1L%KI!
MZB%O%EXZF!;3ZTF"9?.#.J,:L4#+: Q.OG^-(N_9#X+9>D.H0#&GH N$4=2X
M7^>R[Z-M%?8 "EX6SED,ZUQ^7Z]S61QL-,4M[]T5\M( S1><LZ?X;%OX)*MA
M:3[,(%K+ 4YR]4+8&DZ!RJ;L*^JG$$T(=I8''/T3(WD=2HU^0&Y=*&12Q:D*
M4O;CRM-U@MROOT6!YT;7@5N<._1F2?QE1;R$[?PY1-Y]^AC[GN]@MG((;ANW
M' ]"0$9;*/-@<TN<@2IB;=57Z^ UA'Q<'52*:F=N9$?[YDR.X'FT?O2SBT.E
MM),'[(3Q F'B$DX?8W:PJ6"^T4@0(EFFTM$(47#[F5MGFSU?$.TL68X6BG_%
MXIV-NALD>]U JDO7R97(@F.K >;S9(6PZ%&8!N- TN66C&^ ?4^)FAH0?8GP
M5[)/WQUM3[T_TCC9+3M5U\S*J!#BNRWY;HT68[8'A2C0+*3!GEH&GZU!(010
M^[<47%+ ,1N'O&,:A9VG+>T%9S@(>?W]&@H.$<9L(2PX"WW["8*D_OZUWZJ+
MT!WKZ<'-,O3_0M[,(V+K+WRZP=V=%&1.L)?']\LG!Z1-ND;>#4K,-XIV9X7D
MD+385-HERFL1/BZFNPMUA<MT=F5/>U*@F]\NM-J"]&J3]74++\LB3[*69!3D
MLX/T7D18.#70S?RH!%E(W&]'G%ETI&]!WDT*R0UX#2*\(^NK%MY;'&T03K:W
M@4/0SE:A#2=XUO/<0 ,F8Q)E"77!271.,T5V&=B(2M=R<2  .-;9%-E9F#CA
MTN_)%RS-!C1&,R:#4Z)G_V'>QG#/-RQX%2ZOD1.C.WII<K[X'&==]6+"7<T-
MH=A#CU+9,W5?M2W=>;+%'UR7WLV/;YVM),^U9Q@@U+L8N=W5H/*(K'$=FS-"
M8WI'8A9>OKADEOF"7F6G:?QY87Q/<%4&&&P0RH*,V)JWI/XW9NVOHW#Y@/#Z
M CWVL9=7 0"B1LJK,_1E&H_(RI<]L\,;51F&O3K=]<E!E(89L:%6T?<;L\0]
M'PG49P91?N;5V5[KIP-#&=V;*$O.&\KN%N<'<5_X]9G>(HE?M?4](#J  99-
MWJ]@O\X3+1E]7XM4JVC=;XIAWW(+Y\2M,X("JPF1 WXXO,D0,JT5\4%:*V+W
MD<PS.4PTR68:32&)*TI_LJ8^U:FU-UOQK8.3PRW:@O3(:DM8&1G*G>EQEYNP
MR.1C!8IC!8IC!8IC!0HK*\S9]I/S1X3/ R>6OG)O,L( 5E=46[,;JVM$#> "
M< #WQEG+[;+Q*$"L= /QU^0V'VT(')]3BLSQ+8Z\U*60G#GNUR!:2A]M5G6"
M8+\;BG*1H2HT(?#O 3L>HFCP%V-Q,PCW32SPJ(X8!*Z<IW$2K1&^0UF9SWCE
M;^0,DO: <+'" J^D.$)@6[[62W"]5E3D,AMBN I=35#57.ST/:;1%O'2H%[E
M]9//,5JD 7VOIKG@2(:$8,W;BE0["KR6 /PW?3%!L/:TE:P!;QGT&DRO53^9
M/P;^DN%K&D__J(BG'Z::T+E.HC29'&8;34S]6)QYU-'R8W'F8VC\&!H_AL:-
M%3'&24$)R:>J I*O_GE'%GK$,9"5W^"$L=N8PPI2@]*<JSRU7P<V8%P)*5%R
M:/G]1*BR3M=":E9^']*T"%B?D[,"Z6 $=5[D!"W_/N2F7$70,J007)U92'8W
MZ,%YF:;)BNVJ)+ZIJ/$ MEBP9[7AFHJPA,DNJ4,J;@[$#Y6+GYPKD [T""PH
M3GSWG-[ Q5OIH8.@+00?4R5>188(T(# C?O$21"-(Y$Y@O^;8C_V?':4*.6+
MLA>$<*\)AY0(0>!5X8T]]J;> YE1L@2)FP^P" D2[FTL0F(\H3)-NA#).@!9
MBE2"J.(.I.6H"A^Q&HA!1(/+U%[?$<L@-89&(T!8NM0B*6.@%#T('.58DMKA
MR_&9JL%.N+E!S)N4RL]\\<D/B*<4A4A2L$32%H+;H<LS!2K@CHOOT!,*Q0_;
M'WZ&<"!KJC@'Z,'1G7,V?#C;++TM,,68!E38 U4LM#)?S-.$.L%Q]C!T]*Q_
M.-]F#DC%274EP#()7K$8_>8O5YW+438)I&JF_0M21@-PDG2X0A\1+!V,MXOL
M@7C1TB#K *FLJ"Z'9?@,\GJ32KAVR3:WB !7?<'+VJB02G'J^%Y6D.Z8W?3E
MBZL@>BYNM3C\XS>#5#E2AR%\+(!EL+%J"L4O3//6OE/DK;$)RE\><]6.N6HV
M8[''7+5CKMHPN6J?T(8F6=&74J.WL] 5)J&)&D((GQIGEXF0Z8*^[LH)?=<)
MJ"M#2[=$^/\1MR5UO_(/6G4[ 0VLJ>BN1JP?'LQ"SW="QX@%E3Y HVKF'*C@
M99\!LR>T+4Z\WCCA]CH0&QM5!Z#A+#GI54C9I_N#$U^&""^W,L/.:P0TRB.G
M+P\1"$[./:*9R?,%5;,GWTN=(-C.UK34-_:=@.?9R3,]&@\'-+(CYFI[E#O0
MJ<MS D8:)W1J&I1(<';3?QIZGPC\9)OIA"[_?+I!?Z Q'(4FFN%HGTF7 7+)
MY*55[B;"R>K<(>C[DG5?NR?06(Z<,=K8]>.$?4Z<E9$'5NP Z6F*5NY7$2EP
M1PO'U W0J1N6N)QG/>2(HOV%9@&/91V [DREO);A U8GR^<DA].1!^R$\0)A
M OU[A8[J#0%TIROEJ!F&(RJ)7Z@F0'X7/$/:UZ1 -^+"$ZT^: +.7MPZ6W92
M^A#M\#E8N5]Q%(O6<74WH&$"J5U08S5(P@#7,'V)\%<:HW8V?N($4^\/LJ7B
M/'1M;52@ 0(3;39'&IRZ&F!5,$JS[*$!D</6=E"@<0A;+@ 79SB&H%:EIYT%
MX P'-)QA0_4YV':=)"0NJE1;=GC)0T;=@<9!A)PSPV[,UIDE#EG8@>7C@'J0
ML@,CG.,)(,&L\"A*<5=0+2%W@Y+S%<U$)*L&2SLE@CU=TU2Y^2(?PBP=[8?3
M]]5TM'R@B1-ZDR(T]8=)_F-"(**EUC*@)GXXR<&:9'!-HL5AP/&EL>6@ZV6K
M55H/=YV;>IJY(MQGX3]927Q%'X@):ES&U.YSBW&"8-IW$$DSSRIM@&29:0E9
M^42UA$:7QSWW"#_Y+K60[$10)^M)U 5"KAE72.K'.R(4NCSKU*:TN@N$&+Z4
MTFH4(%B4W"JJCLPX[88[)Q,"S3\<JUC^T9Z!Y7C<14%PE=T>4G"KU!*"QFAQ
MC@L]N&V6X%RC_C.$-4$B.CS* R9W?N!QD6*R9^!>3]/K DD=--G"1P0LJ]AN
M>1:ZF#Z;?(&R?Q6\$O2!<+YKR"P!)F"Y-5MO'':2Z+KI.@V(N^YE7]%E\%I\
M"&?0'\)9K"$7-; :53!(\;-I**CV0FV#4)!.J_'%@23/.NB%AM0#0'M-[Y4\
MIZB,).FR]OAJXO'5Q!&]FCCF]]VZ>R\1_/MNXW_L4K Y.CYV">BQR^X>4+3\
MV"4_W8&GQ#?TG'>]00F:+C'*2K40!YK!$PKYT7XX"+N@%GQK3X"NM\"O_1T4
M$__S^ +*\064XPLHQQ=0(.XC56>.T)\;;OIRIXDE'^UAI1@UY:O!>EV!;U&D
M$J"'(;BC @FZLFLZZF[ MS(->6G_ND[W?"R<<TS7$4[\OYB#;\Y9X4# MS]-
M>2W$=TS<OTH36KNR /_ERX:XS6CZ&+-: .9RH#$DA$MZ'4B$!N9CD@T.(C?$
M!WEX1L$3^D0<DE4#^Z\U*/!(LK;2Z%H2'9J,7'+^@1S\\!Q9$9C]6, ]PA[D
M9$^*UR >9'[S'8)B-.".9E\BDA'C%0C)592*#DR:#@;</^U)1#):O 8)(6WM
M20@;#+B_VI>$,%J,7$*FBP1AJV)2&1%"P8IA9:5"D#$)S UJL.%EG2 4H^B1
M[0SG4>7!FB:Z?FR=Z#J:%-;\IJ8T3;72J(7FQLA]NXR>B&CX#,@_OZ-_GF1_
M,LC(QW]>HZ437!(BEY\PWX'%;0$H=91+4JI;7,#M644]VF9S<_,XZS\/?#PO
MD86<GF5X[2<3?7&"KP@_O.S>9Z#E>-Y2@Y/$7U91$&SGSR'R[M/'V/=\AY:%
M%N81-1YIR(B82&+RW*#&2$%P!O::JCJ;YC4<[B1:##:WP,'8SY;9LGJXAG.^
M<O 2Q8HS"E4G"-%#/3ZJ, 'G8I<O4QG=)QOH\IA S_0$3WR/S.326-\Z5=@,
MT'<,RAZS2*<4G2#HE#G/5%AU7)OMEKB7!%"'ONUZ1:!F[[J29?3RQ45Q/%_D
M]9+8]QROPK _A)"X/H\:( A.U6!6#A"$HIN;/! 1@5L<D>T:V2B$WN6?J;]A
M]5J,]OX_UNN=Y8.RO?]^V/'L\/?YASDBMX$3)D42Z5U1574?II:T"*BS[0.9
M7'(Q5:LGH*B"(1M+-:9U4(5@*\6HD:FE5T^U>@*Y;FH@LUI<+*((@8O7Q%!*
M;[<5&T!P] W$KLB0(AH0Z,Y*EV[((IG%^',D5!<-97T@N/0-N:/ # +#/CGN
MBFS]<<E?D;)+V@.";]^065*\NBB(O=ZD"<+TPB(*T&85A4C. .U>$+QX0R9H
MX]9%S7F?Q8WI@R:T8M(J"FC%'1P]93=*A;S0[0@A>Z,!.W31@V#%KE),"$M/
MF$/ORG^A?\DOM\LZ0,B@:&C#9&A!X%/QX<M92)!<$@ 5)3^D72"D/33DE1RQ
MXRUUXUOJ^IO2XQWUXQWUXQWUXQUU>$&F:T46@$['X;("]-'BWTY76?#1Y@\(
M$5->3=?J"3I$(N6]%GK@SM.$4$O?CE1T ATZ:<9$J-?1"U>G+] &(]=G 3KR
M=X 8W</2E6HA?J(D!6O#@X[D2&7"'@W 28\05G'VOKP+Z !1,\W7S,_OF7-%
M2:P(H(!QTAZ@ T52ODG1 I!$<8$>"V\@QF;Y$S_7\R?H>)/"@*/)G*" SUB<
M2)4DP6TYD)85(9&D/_ :PLEVD)"^K$IU)&#8NB)<RKK9XN9 ,A;$4B7F!K2"
MUW?H*0J>Z)O;&'E^<N6X](%E_J-DFGT@Y"ZH1*W(( 4Z]H_W'A!>7T=.*#S&
MJS: L)G6H2@/=OODNT\?":CTE5JV*!-G@7@<:S^.([R]B1)^^-JD(X1MKRZY
M=7&"8&NH6,2WSI:N6_),*$[#(:V*N=25$J(XV$!@1UG$5&%>8>OA8KL*!,2+
M\-ACMU3>:%GQHF0)V,9O"F]!D7*/CP2XO?P5L0ZABUAJRK7O/#(W0I3MP6\+
M;^F1,D: !3C.4)2NHW"9$.>$R-']BFSWZ=_9<_>L6F4JC)WJ=H80&34TB3IH
M@63F <?/H9.%BI!'XRL4YEN,UGY*D6)-XSBE0GH>Q;)J)JU'A1 R;;PB-L 7
MG%Q08::[#PJNT+$L-H$0+#7@6!EXT.0_3S$6'T9Q6T)(FVO(C#T.H'ER$X6N
M-EN*C7OES$]6.5-$ ]X9 GL=U_0@H5:$J7:0<#)A Q\/%(X'"L<#A>.!PO%
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
M$+YF7Y:_VP%4HL'S\_-;-UHO(IS$VYC"G<8._>8=H\1AK;E&#C%$%RAQ_."
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
M-ZJJ1K:V,>)H;I:YJ^<*RD223DA!?)2 ?:'Q8U0?LJ,KZ[@NE#1/2)S37I
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
M(=QYVH27?K*/$E["=[-=)@E-=3/KIC[(,<!(Y5)"4=<!<<2;R=UY6&/4R5=
M_VNXMZJP@$2>#7=[&J=OY):13WEEN#VL3BW@KF7V^M3&%^CPHY,4[>&#!W_W
M2./\,UN%\T>VWW)]0S8WY'YYO8)YPO+^?O5@]>UG>0M8+"A6U'NJ;XD\[&O4
M*SWS?-H,<8C72=NYRD-^&SQ[@5X$N9V)Q;@*^IRHQ9B[B<*HK&&6?S3LQ)CT
M0QZ/QJJKT=G8"7&LFLO>U;%5#GGP9DR^'OOQQL;$>WS]Q2/MZYN+S:<54UQD
MUU_;?(]Q';[0A+_1*S26#U!JM_*TS9%'<Y.BY2W6ZK:(8[=1Y*XN6Q#. G:1
MO[9J)TI'U#1[1-;ZH"LEJ5_R.FV%/@0KU2I'7JD)ZH"KEK17]>Z!JQF9SR2'
MUB:/)3KF2EI3;C[*;V01%\X/B1_2)+F(=H]^R(N,740AI"L,#=E?B>_Q]"4*
MEW',5.3';9*+9_AS'8IB8)NMIHNL3__V06/-Z;@CQ[&)?P85'R=BC1AWI[9
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
M9W''2TW!41YCLU5VG1T>Z U0#P6G_6:% C7B#PP DA,I6-FZFCR)&0I2(FM
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
M(/RGT-_ZKA.FI.!()$M1$#][,M3FFN^YD_@)E,(OQE@VY"K2GYH+@(?CCL;
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
M;=-OAEY<J7J3/Y<ZS<RSJV4?TL<71#(AOPHVG?R]\K#&<I=2][>?HL!SH^O
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
M:X]XCF(D=E=_+A,'Y))W('L\B5HY2'ZB[K,3^JX3R!ONVH?T:IHB=4D3!>6
MJ6N'?-!L%+OS#?&<<%&<X5=!>YP;@[K1<$H-!PNK54#=-#8*JYJFB,.J24$9
M5KIVR,.J4>SN^:B?D!VG11(H?BTFL#P5S7GF=3^FS3M'4[H@W"O2!LK([MFO
M3N''EV7Z[ND3SQYKGJ)LZH,T4ENI?%1J7]\!<59F)G?G(JT9,?MO4&:2U+XZ
M>=P&NX]6J53R2;4!9A^LE+._SPW]>O8-?57W);4)BJX=4G]J5$VF)I6-D.<E
M]3(/G)2$]!6.+N3<ILU&QE&542T=#QTNX\^*[I\??'YZTRBTC#HACC-SI?/Y
M0&,/Y!'80H&!PS%_UN$Q8VTQ.">P@F1!)(]QXC:;D-R*(_/Z:;JN'>+HK%5-
M!F1E(^0Q6"_SP&&7S<7EI8J)Y^3CJ)I1)9+LT-%TX01!\LF!DXLAG Y9AMZG
M*/09#1;'32%FUAE_W+4PPE$P&O2<1X2V462DL'5!A 79%4+P@[:[7 PK\3R%
M86207P@+?#JR0,%O\JK"_Q7%LJQ+U:*;MA'2F*]7JB@R?-P"X1I&@Z"]ZP]9
M>=O]QMG1S;:D5N7"65-;Q.[7J*+T0FU#I,[8+&]_GQQZ86T=>HQV[#L!RZ_V
M-$[?)"]MZF/0!:GWM5%8ICE-[9$G-\;B=ZX_)&>\'DW\IU!<3GJ.X)Z1G_,F
MP#I[ZAK&<W[IR*-9Y1&H^^#$;[!$X/FBD=QGS/O!N1*%'OW[P=^#WM-F1*-;
MLV PW&*?=W"=^I6]DQ:(XU>C3KYF5_X:>73JI!U@?I&4EN,DGXE7W@96+Z<W
M6'!LMELV[<A7!IN&OH;FB,/&1%$90W5MD0>4D>C##77[V-\YL1^\Y0,6C&'P
M@#V4I<JV]1?9BK@#U2@6[..4A%%* G_GBP*T"^)X.S_TD^R]U@5Q UH^7+/@
MPR:LH1^"U$(DCVI703Q?.Q]NA>\GZ@3IL^O$])[")=;&^&[L@#C"S925,5[?
M&GF4&PK??3$*B,J:=Y39/=KQ[#3)=GEXN;K=W@E]>.XJ?'*>1'7GYURN,UE>
M6H( <=S4?V'9[=0'Y4:V54%^N&<3\W+<C?%:TQ1QI#8IF#]ZJ&F'/#H;Q>X\
M3L1/+.3^(>:#O,B%+\J8B0+NO*K$(7V.8K@EQ6(4BEGL=H>0_7/BAPO'LD!!
M>,C:A8X?W%$V6X!7F5,H6KZ"*AY0[P$X:8//O"?B6&RIOE*1T*0;\DAMJ\7
MVUZ\"$VP8/_-!>!I+E5%F+HNX"0&N<LTOSO2?%6G>?=[4VS.X%\Y.S9/8?HP
MGKX'5TF=0']]JK$'XI V5#>_3%7?''D(FTH_<.CN@"W9<K[<<^."\[1C[=@&
MX/3/K@I-%186#]5OX)6:VORXOB72^#503SUF7]$,X=Z@B;2=<V*@B>_*^#6;
M]*Y3JJV29= -N8>:*FYP?3SO@]AWC44?X1HY,"&<BZ7W/^TI/UR!&<J,PM*(
M)YJ+?\7\61;X^\5/GR4R50RR[7HCC=R.9LBKU)AW19XS=M&D5PVLG)\H/2K"
M6E2MR9_1XV][6*IA,Z$];DNVN%-MD3_J 0R)Y&BAZHTU<QBX!OG*85-EZ5(V
MB^5DIEG#(^].L(0W'L7FM"AB?W%@<R3V[Q>ZVFZIFSZP67["3[?4E=/I310I
M]@YKM(IZHATI(LZX!E*L=^',3 "B2)"]2D$*&8@0@A12]*G^,U"$MC==356%
MSL201V0_(ZF1V(T2X@CLJ5#W,X = \YVH8?V]JJM"=&#W+N+.7VEB:ZTWE7<
M#73,OG/D]3B5/U#L73@!O"*>4N]SZ-$X&[U_//@>7*):AT+H<[J-8OH0[7WW
MS]_]N7;9N!=!Y/'7WUBE%XDZ4T,<@P,HU?FR2\Z:'(!W/DN6W.&H51:$CUP
MPB4@3 1MV;\Y3 R;%LT'(8P\-(<SWB"3Q#DLS0^HG+W)8LT:_Y2CZ#/3GUFR
M:JUKF20T73XF_ L=:K;HCSP06YNB-"2:=D8<5NUUZ#S@<4XPJEV4UCPEMP7A
M_-@$+^-H:1ML0HM(.W"R-@MP:G5=AVY,F;"75/SW*HIEVZ7[]X,?4V\=RLJ.
M%]'NT0^K]F/&Y(,=8<8R[=%SH<,RP8Q8H^G:.XZK\ RR!2$/^4I*]C4_75:$
M?R8=8*.4CR@"6GNP%)N=Q0CBL4E2&A$'>"793>IOB><G^RAQ FPP6CRO<\$,
MXZ?749*LONQIF%#()V,F<HL?P(S:#"&QA9F:@,^ U,S@K8U&0X.8^H2RX$Z
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
M4#;8ES;F<"'E7?YXU]J#VGM;'^8AV7N<8L_.DT><RN]SLC8L/?)N:-K^S,_
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
MCY5><T]@H\ME=J?RCHT.M=E$.PHS<W,#<]3Y?4WW&06"B1:#1<:"Y.R(Y$>
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
M^?%;!*Y]Q]@GN@[6$67J7E#Q_QT8-M6QQ+E;3:[S[MH*%KAWN][3_9NW3Z0
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
M16[%>9@1,%^65E5!NU8W*W"]%_" B<G=IG1<I.8]%60K>_.@U[[<M\0(A1H
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
M9G:H%TGWBMAKY[=Y]"$B.8:GJK4D9RHE>(U7Q8,%#6E>3RR]ZV3 "YA!8NZ
M!5P 61*RB(E$C<"= O6*1UFOPBC]%91K6F5;7(FOE:1;/\HBS%VKP==(Y^U
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
M9ZX98XG?V"_EK]+&_L__#U!+ P04    " "8A%=4TSN^Q!2"  !AG D %
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
M3\9ZQF879-"P%1"+^"18;."F($[ 76]CVQ?F<B?"A?966>- YP"/A#B/:+8
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
MI.U#JZ!QDY14C!O;!#[9E;G@[<14/&7+I1.O9O,G?Q'Z<]]%#XF*&!9P1?@
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
M?P0!^3JN0UMV<TZ^:BH:JG&.E[6LJE1XE0$D"G;)M%7&;B+PBUP!+//EOFR
MJPO 0B+@$3#&%6O*?&8AS-Q25TCW#>7-0-J,=RZPJ+-8Q&!1QK N*X@^=CGL
M^MBE^7WTT+:J.90G+\-_+4O@ .V1"ZV*<:9$[#VLL&AF9K7MG[/8 .2$L=C
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
M_%&;"*E18TI]9W6YZC\XJ]SIZ3DJU;29*'Z/HX2TY&)5LXERO616ZK$J_%A
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
MV'(8@(7S0<>B_ON0L6#*H=K]X3)Z!Z$3HO=7?D1Q>FR5,T;K_9T:^623=/;
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
M4VI "AT?3P[/#R>'1P?G1T>3(UUFIW0%7/>UC"AP 4(P]U/T1-P/,S@$RK&
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
ML9S&C;-:XF>Q"A6AW=M&8LZG\GZLI18"O6A5C".-0@JT^2:L&>TLPI^"S>?
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
M/0O[-II].6&?,RW[Y(X<FT$/]*L+J\H42B4#]66D##28=ASH.AF_!L:FG=6
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
M=ZZTY%*ZDOB4(/<EET<6]__^#QDG_EQ*"WDO1,'2DRMB:!VJM@);_L&H/F2
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
MC((NUL5H__1H])F*VV.A'YX4"]W):;EG1O302)_ZU'AK[]M227N_5>4"]V3
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
M$E=C*F,M&RRN: :="O*DQ*+P)35_9',Z#-P#;/*?-'!KQ9^_HF8969*TD&1
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
M2P0@1. )>#_6*T\-52O3B[!\,GS>:+\'*C,8J=N%M[!MPU(E3$7#O T&>;4
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
M ;1]:K8AC6BW4=QQJNV'1S;N P.M)G3M3=[?-*/AO1)_A>"]A>:[Y,//19?
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
MS9X,JW9]&T'1O"T*$V"^H'S>14*W5+BE0A<R 9^E(;\KJQA EJ#_@HP4^#9
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
M0\M<V,!36T1 >%;^.7'#K;Q%9T.C&%4#81C]R+?4=RMB@/OI#6XR(-H4^N[
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
M.+H[@]8*2LR!4&>8:?6QCX#<XW <653N8KDD7"/QK1ZW8G$$5,)^?AFX#M!
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
M\L#1(1#[]D8<#.VNA5.3R>#"C1ZX9LH>7*7ED+G[#AVO'P6F;";5SE(_%]>
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
M#\.AK\H]6JAYO(ZW<<]%9%U11=WL4^F,_=%@-3J%B;YS\5UV$^A=4H[^SU?
MN%OE?UB-GVU=@",P7XQFJV6ZB5>3=#I>K4>SQ6J^G,XWRV0T7LRG04[UY>7/
MKU^\6,W'R^7#YDW?#;T]>)],ZA?_@RN,7KRP:-LN%SS]D6KJ@2XN_5GS!+[O
M:,;!SR9_T#T%\8?IH#]I7<X+^5MKIXO?FS*>_O9B >XZT/06T\CF0&1:(1.K
M9V<9OO(F"/PHA77(A2]PT$ %CI-7V,^_13M4ADE\^ORS(V][ B/>&_$X/=R4
MNRT0)_K^Q?_SCD&!GU*$NSUP!9*:VP+'LZ RI%%/^M8)FS*LZQH/AE$P2=#B
M?&BTW">,EEL9,(8M]@V*(YP6(@-(9(!)2D63H!/^L%CTP2K;85@$QZR<KJ."
MBY."]I1=?$=0WEBBZ:9&V %XL-\<IV/P4!3N_"]*#Q@CKAF$D\J4W /6QDX;
MI)$XV!53VG(F=!FXO%4GK_C(?4SCSOFL03?[T?D*>89P)DTP4M<MC:MP<>,8
MKD?=R=,LM3_F=8D+^L%P47+T,VH_*C0T\.-1?S"@$ O\[SE@?B1@/CT'S,\!
M\]\1,/<H-%K.^X,A+_LD0UQ=291S/U]Z1<I_ 6OC.N@A\,#R4-X[!),4152J
MR DUX5$UG(7E2GH=F\-NZ]J"+-"(1?U0NQ\0:*&'31?R$NJI]-^]-MY,)*X@
MLR.$N T399](9'@%0=Y99>_L$H344VA>U? ,LX="<6=+JJ6%U!8P@ZHA0 +N
MBW3^:=9T+(56SXOXI&-L/ LSVUY%=97 &[.W%^AP#4?CX=OAX VF"'[=77V!
MJO#/7]"!9\D7;;&<%0BX<K'.P4JP@FLYZ\^1>TF,>&)%= "($!1M!Q< I<7
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
M1MO%5Q.S[:H,UPXKQE6 0+PN*Q"HN&7X"M#_C6F >[/$,"_KX_FE)D][S/Y
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
M%J#T8_EY,%#6%\C!C,"G'+CZR?H'WQ4W6546UD7WPEC?L=M_6H/UVSW%,MD
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
M[6.QGAJ@.1S 9@:T2L?P^ 0X<0B7!+/%\\FD=1[Q>#U-9[,!"BY850HB=Y$
MU6"-4Q ]9@U/:IW'>#-9PN/PPL*9(PU !Z3 \IM1/$\FLT7[#H[C)8B3]7)E
M9B!R)PN0U""*X5 V<+(@=I.Y46U (2VK?2F*@T&A/-[5YFO]#U\7HI$B,12,
M)B0<A0BC-GYBGT,V QMJ6<[ZLQD%6YI*WRO/&[(Z;5+]^WU!MO&\/UW^T0_Q
MRALEW.M'0+SGHR&$4="OKS.@1&'_3>F[KSG*!69B^L[HDL02Z<7Z5>Q:RO>-
M^<A1I>Z1"O1%^!!C&%SQH'O\@HI\!N-GOAT5Q B;]#W([N4[BY*RG;S-07\P
M.Q_$(SB(X?D@'L=!+/NSLVAZ# <QZ@_'YX-X! <Q[2_/HNDQ',2H/UB<#^(1
M',1963^2@S@KZT=R$&=E_4@.XJRL'\E!#/N+^?D@'L5!G)7UHSB(L[)^) =Q
M5M:/Y"#.ROJ1',2P/S][U@]X$']J*LP1/5@^Z-/M&GM6#TI!_G_VWK5';MQ*
M&/Z^P/X'8=9^X0'4%5%WV<D CL>33)XD,QA[=["?!(JBNA2KI(HNW>[]]>\Y
M)*52J:HOMM5UZ68">*JK))+G?B%YSD/1\*A;,8]\(OW1L<*J K_\TW?$_>XK
M4>1;"\_O#ZSW-P+(^K,ACL,:_5'X1\1A^  4WG6DZ'_Q?.3[K5*E>/IQ.$3T
MN&KLC,1(:Q"M06[5(%^M0$BX",];@> QZ9FTQ7W;";/ ^G#(Y#7MW7]WH-5L
M(-C FLUHW)VHTFQPRFQ (NT[S.,[C(^O,\9YEAT6&[_)^V^S^0''AF>+N@?Q
M?\A)P/UB!DADJO0(D(R4D3C\.;XZX6Q=5WY(/17#,:W ,7W'GX_(,GEY;"+?
M;J6^&4"9%#Q_VA,+]-"<=$=O]=AT?ZG5U!-44[89>K[I>Y%64UI-S1%-'9ON
M6DT]337E$\^T@T"K*:VFYHCVCTWWEV>5[\?6J:(@)J^OL _PV63L3R,L/UZ6
M[3:%,Y]I.3)LL]L9CUBF:\_N#I\GC>\[I7.2- Q!P\\=?)^K"ZLUS[EPK6TZ
M5F3ZP>SYPO.D\7EJ'FLQH^%X]-U)K7FTYA&:AQ#'=!Q7:YYSUCSAW"'R><7#
MQP[H_U)CQPS9ATIO9)]YZG5N@W'V.3C/=TS;>J+95YUKW>1:PX6C-ZZU6CH3
M=O5<WXS"63E6JZ43I#.)%D1O5&NU=";LZEG$C%RMEIZ!6K+UQO0Q-Z8_\**
M&4SCDI>\IK)#*DVQ-;VH"R^ZJG]>\[+1F]9S50TY9<UR7Z&-DU0C3N#CYH].
MOYYM^I78<QJ"L]YR/D^N.T^]X05F,/^1R/.DX+GJ#4]O&&N]<6"]X5JF9<W(
M>%IO'%IO./.?B#ZO*//88?)?:%YBD^6&RK:FLH69WOB=/Y5Y[-,V!TYU'AO<
M.S350[73*V)ZKO6]3G^>4?KSP;2U%F16RC[Y'>)C"[367U^AOUS7T_I+ZR^]
ME7Q\@=;ZZROT5V#-:Z6U_CH5VLZMO_2>\Y>N5C7$+B^-O&35:KZR9<\BPC]/
ME7&6>5X2AJ;KS'@O1.=Y#TQ!?\YCCWI;6:N-AYUJLTS?FY7QM-HXL-J8\5"
MWE76:N-!:L/'<J?Z%-LYJXT9CZSK3>4O!^!GK('.FW;NP/+8<)W0;O)YJI.G
M<C'&GKW&Q),A\2DF)2<D1BDE]AS GL:VKU9+6BVI"J/ZKI[62R>SG:OUDM9+
MTEW2_I+62Z>S3?O5>ND,-G6'T%O=%M:;NCK->CJ'/GR31/[L!WK.DVI'3ZU^
MP5$=>_:CTGH?1BN(/:P6FDXX_XGE\Z3:.2D(9_:SR%I!: 6QA]4BTR&!5A!G
MIR#<V0_[ZBW9+P'@W9*6E_!Z7AKMDAL9S6OCBA:=N/3+X$68GI<0-M*ZO*BZ
MUJ@2@(6V>57JV\ Z(?G$$I*!"736*<GS34D^B,J6K@&M==+9<&MD$O)$NQ=K
MG?0X.NDTMGFU3CH+G?3@8,TVHTC?NCTK3?0%@;B^=7OD6[<0?M?J8+3Q2NW2
M?J^W:;_(3CSE4@ZG6[?A*^_NZF3M221K'_D0M%8\6O&<DN+Q9BUDKO7.Z>F=
M(^P3:[VC]<Z]#H\N9/_D%<_!]Y\/?&3YV"']SS(\3GA6U;P/EEOZ><;F1\<&
M4>]%/\$<Z]>6J;$#?4'FG/*M7U>58O;62L>FL=[Y><):212_UUKIR6NEV4ML
M'9O&6BL]7:WD$3-P9\_L/1DZ/Q6MY"UFW#72N]1?OMI?ZPICTJHT( )_G #\
M>43;.G%[+CK']<W(]L\Z=WMX+C],DO?(0.H-;JVO3E!?$=.USKNZM=97CR3*
M>F-<ZZM3TU=.8+KDO \#:GWU2**L]],?%]Q_<EV+^U"=!1U0U&G5)04_CA5Z
M<;BN@D< =>Z$LNN8CCN[57I^PG&TS/-)Y :>']Q:&9X J+/OKEDFF;_SS?,3
MCN>J#$]C_U\K0ZT,9U"&Q#6=IU>W7"O#PV8USA9ND>CX0TM!A.=?F!!&<HM$
MBK>N.<HP(+E(WSQPV=3(TS]]%S./$=OU@CBU'!Z[5I3$(0_\.'7#P+&(%7H.
M@1G_0(<W?.8G-H'G L>EL1O:81RF3A(G@<5=XH8N<=S)&U:2>F$:QIY#2>S:
M"8G#T(OBQ'-<W_6\,."^>F,>U"E&N2AXUKXF8:_N\A*PT;Z^$-],T6NCXO-O
MP:_X_#IO@9?9FQV,?_>#;=G#WM(7OVR\JU9K6O/4:"OCJT>!)5A[Z)MQGZ:<
ML]@._3!V/=^/P\QU8DY"'EI6REC*MZD5$9\2XE@QRUPW=GE"XRBPTSB(W#2R
M@/@T99,W@M#U,^+'U*9>#!^#.'2\,$XB0$OD>)12:_L-.[,H==,@)D'*8I=0
M.Z9!D,69SSWNII[-HVC[C;\6GR+'#8"-R:RL,F8,0?Y]?"'%[G=N+&EJ.(%1
M#;W@BXK)JH\&;; VY(^<\57":[FYX1#30+HLC)]5(<F\;EKCWQVM6U[C\\@X
MIG'-#5:MDKQ$'KBN]HZ?E\ =5<D7QEM@;OR.%L5-_^ZZX"V\##R3KU84!L]I
M85#V[PZ4 3Z+<U%CQ=F2EJB511'+FK)6G%<R_KNE2QAJF;.E4?-U5;<"(&HT
M'#@3QMNSI &H=IG7Z6U J87A<Y/EO%VUG'TR_@KLRRKC[W]_9[Q"-65;;^0O
MX@_RYOM^7;1HJB]?7%9U=;O\LM4)2OY\Q6^,?VP0)H2T!(2/5XH/;=;YC_>_
M"G!P(>^JA0EK8(OAV=&OS>8=6@+5C):O "Y:WP!/TRS# 9B<#ZGS<YGFM*0;
M1!0*#XB&.Y#0 *_<SI42"<C1+KGEY3%*J+Q:5G0I( P6!7B%531=T8HIU #X
M9%97*X%2^'G-69M?;=,^A=4NC(_P0$-7X RT>&M-@%OG#9ZAP_=Q@:@/47Q,
MA#/E#:OS!"9/>%%=FP;_+!;3C-'>]#BZ1@;!.5&M]N ;&\B1<'<_.SPJN7'O
MPV^[RP[D>7CT(R]+WC2<&^\+ +S.V89MMGCAX_MW4_:^<\6 @G99P[@K$-NE
M0'B/>SQQ^/'M!^-]R>O+F\DT;S_<.<W;=9T7QC %\B)H&#G)= ZD-U=0[>B/
M?U8H9.]H717YAE&WYOJ))W6''*ZF$[/UXMQ6EUQ4^KG.<6:<ZG/>"'[<'GK#
M9\">Y1ZV-?)FBTW;6]FL&JODE(*DM2 -C7H$/3D#T /PW7!:CV8"]J6"^SA8
M!G'><Z_&!:"6M!5B4V4M+PV:-%6=""6-*VOY)8IM*D$>P-W(T<*0[F6:7_WP
M1_BG-W>L@/6@/[U\D^;-NJ WKX7?J2Q7'U/:P<+QT)[!5TOI*0C[IMQMRWJ)
MGLYHW*W!+A@OBC=W[=7U(\P>CC*.37EZ.VR[FV!4V6''&2%F].]__L<8G$TH
M<<&JHJI?]Y'U"'\*+[9P&2_Y15)S^NF" KGJU[2XIC>- C:(%DY_Q.#U$)P[
MTB\'/+\T1I\1*SM46]'/%R/$;7NH\K7^.Q&/#U]6DIU>U[R@J$HG5%-$;ZOU
M:YLL_&V"NQ!5>3LT?Y3PQ!F%)]0 797]Z;O_^EBQV[WILJI7M-AR9=57W_WP
M48@?:*!W\"OP0S-XMO2'>Z5BBNI]&%1>99I2YEH6B>TD@^@G<?TX(0F+H\C.
M0NJD64 GOB[G-$M"1F.'^ %ZKFF<A%D81V%* HAQ$N:FVV]XS,O<-'-CVP4W
MUZ4LB!,&7J]ENZ &,RMP(CKQIRW'94G"8R]R(5[R'!@^R)(X\GW*,R?,TC38
M?B-E3I9X:1HSUP4//.-.' 8085$7O/^$N'XR]=F)3UR/IA#HA02BN"0B,76(
M$P=IFH#W[3H^FZR*,3?Q,IO$ <1\L<M8%H>)36/;<R*+>I[C6=FQ7/,_YK?'
M2M_]\!N_XF7'__B'O"]KH+Y!2P$BWX 6?F&38&%)!PF66P##F 8H]V#AOS31
M$7GA+*Q _I[(W]&\"#>%C>(WZ>ZC<]./O3%'( ;APGJY^07L"\ $R#$$;\H1
MT"A-C-Y>NVNBV8=_WK_K?11A683?.K9#I@&+:W.,%D"BLH:W1@)/&-;"?0E>
MU;!(6(-$RF@M(\M)T9'+VQMEE@Y.XH_"F2_ ]4,SV2K[S!O4#L)CV%CHAE^N
ML#I_#] KX0=470/X:0;3#8^CJ0&]WWS_>BLE8D5.2),HCAP'1(-X$)S:(!HA
MYQ9U0R]PTG!;-. 7%E+?C2TO@"#;CFP06">+X7D[(93YS)Z$LTGD1HGGLMAS
M"2@>QP'%$R9N[%AAY/A^F :.O?T&!67DV9D?9\RQ,<CVX\CS0*N Z-(0UI0Z
M$Q%W?#?S(,*/N>LDL1LP$D<)#V/'9K!6:D?ASAR<,L^.TC@D+(I=EZ2@%/PH
M=CR7AKX;6)$U">0]3MR >J $TPP53TAC&@4$U:%'0A]4HSM1(\2UO9!G\(@?
MP1S<YJ"E0BMV$I^Z*>.I1;Q)LB"TTI3#(]R!AT&!(AS$C5/'3UE@\S!Q)G,X
MW/:#* WCE/NPJM3+8DI2!X"A 0-2>4DX25'1P/(#&CEQY&:@UFU0U\@$L45Y
M9&74]]S V7[#RNP@B6@ VCH#>GB)!5BSG#@C'+!'";6<B2&P6& Q'Y2TS4$U
MNTF0Q1%0 I;F!$F8@@D*IHF5C(41]:R814 *%W@OIM3R8L"URSU85&)/* @X
MB8 @)":!Y^$<+ :7TXHCR@%"&,:W)MA-TS2D#+B=!0P-6N+!M($5!PD-/)YF
ME(438\,#GZ=.F,9^2, \N782AXR!C:(6#>S,L6&XB>FP U@JL^,TLD ^')@H
M\B(P'3XP,XS&[6Q"P21-7<<B0>Q'60:\F](X\2,6$TH3>-@- G^2EF21[Z8.
ML'<:HBF'A<>)!ZP<^(Y'P9@"WGHXI/+H_42Y$P,^8D'7#7_=?QBK*M1,RJ5"
MYX))IZ1WN(4/1[NVZK^0#ISX9LO/&Z<FY3/6X)P%P8*XPCUKZWYI:DHB3=P#
MC]#9"_O.,Y CGVDT?@5C9J!;^Y1Q_[?8X'DM_>)KP-2]_JB*/L3$_:,8^11=
MRQ_9#]V?N14/PH\/S>:/HXIOVM&X\[BMIL*!J$ 6D:T)<0J$L!?$TY0X 4IH
MQ70*5(@6X9W'^#4A#B4.B]#5A-"$T(08^4QWWHC4A- ^TS.CA+.PB";$"1""
M6)H,)T &6X?5LQ+B2R_*WI?E.QS4>);R:\^@/F(<^\T("'?@3VX]<KLI9I!L
M \:J J']TW?$^NXKH?3)(CQJ=8/A^.R^XQD/0,W_XO&9]V4Z.=:T@ZO'440G
MP =:MI^";._^>[NTNU\K[+8OKW^<K[3+D_"SB/9]^8!398,3A?:@4C^#* 0B
M]CUO4;">LI6[3Q2^SNX=^PJ8.AKV>AXC=FQHCG&1#UGUI.#>&O8=@)'4.0SS
M5UY<<00-AZ1E<[$[[I>$='-D^C3:SEO"S@!E<M]18^UKO#.--8VU@UC04ZL+
M<@Y8TQ;TZS>VCHVUVP.*;^<+Z_C@':/0VLEYX8]9-_30*=/A1J(L&#&Z)OZ!
MUU<YFZ7QQ].OUWO?X=P3K>IT[[&,DRS19)N>:YN^[9Q+EOZ@9N*^XY@G2=+0
MGK,?W1$RT"]GIN*QD^@'C ^TUCR0UG0=R_2=&;OHW7>6[)1[+=Q]_.HD*1AZ
MBUG[OAS<9?F&7G@GL*4R<97?;ZZRS^LJGVVL,_].R[%;H3R2ZKDUP7-L>.=N
MY^D0TR+SNNG'EHZ9_?2GSP0D6,S) 2>1B)^CU?1I0'(LI_\$^5XK^V^2<]?V
M3<N>-8H_G83^XZ7OGQ@7$'<Q:R.)4TC^?W/8<H08152&_NZ'CU5+BS/,CQXM
M!CEV-X/'2E8=';"YNTJ:5N"8OC-CX^[C[ ',%TD\,0H3RUI8Y[TG<)[+/EI(
M<&P&UKKWH3L)H>>;OC>CHW?N.PE/C<0S*]\3V&N8MZ7-'>5>OU*#]N4[DPSK
MBM(X\+'^,256' 4\B#/;=SA+G-3EDP*30<K=- M8;*5.&+N)1>*()UX<6%'D
M68%/ V]2ZC2D3FB'Q(G=  M,PO_B*'5I[ 3<3UB4$"N;E.]T>91%CD?B$ LR
MNVEHQ32SDMC-6&AY2<B#:8G0*("5.JD3DP@+R7J>'U,_36+&HLA)+?C(^VXM
MAZ!(7R:YK_\_ZA_2J,V;H=CNJ)0R 0UN&>,JRNY01=E>>*YQ?P'E7S)L*](,
MHYK&"]?;#*HZ$\ ;HED$L T=FJ+LZ92P4]<8:RQCTX1Q6XI7+QQK,\/WHI@R
M/C<MJ P/DM%25 ^/%WXP6I[H?-"V=9YTLMCH;;64)UTPZDE=ZJW:T:,OAQ'Z
M%@= PJYI10^"AHNN#'U?B%<OPG 1;8,%+Y55N:ZK+&^-ZZK^!(L5G1^PD0?0
M&=O!C#MZO'IA1PM[!/'^BM) P8ZUBK#3%>)OLD.#6N#VE/^3(]_E=#*MO0BV
MEX[/_IXW#'[/R\W#^"P9/;LX3)'J;]-:)/0C+"8?9]P&_>!0!_1#&,6AY5"+
M!T%D3XO<^LQFG&&!9CO(4+^D,4T=4!*IQ3(2)M2==EI*G2CR,S>)O<"R0 <%
M:1Q9H%8LU[+#T.,.95.MY=" V Z/O11+[_HVA3<"*_;]P,[<R+'AU^TW,C>D
MB1.X,<M\T&XTL./((VX<$$*2,."$..$1M=:H>OJ=6LOR)EK+WJ@MSR$C\7Y@
MX?=Q>?>QNMK7;NCC^W<X[% A0;1(>?4BLA?.M@"H4N_PK.H^(U8"4NXLO+%.
M:HQK7A2B+15(V4@]CKJ[J/+H+\+Q)#W:'E*#_E8%-JHKKQ08_XR]@.!#_U-C
MI'4.3TO=L03W"\"^JHIN)91" 23EQK^JI.DUB.S& A*?5ZG0'K#(C_PS0#A:
MVU@C1&1![E-:7ZI6U;P/00X:BI$A/ ^=)/NLX:\'$]EII?\_4_:IJ"Z!ES)$
M:S,P5=,")E'6$F0T5EV6,'QJ=#!J/> =OJCPK]4J;UO1 ZAI@>B2)U3/H0)<
M;2'^8 +_!5,(&[@P?AW]95SR$C@)N:6@#2RBX(UHZ5,*><*>0(O^!(M!+\'C
M&+<<,'M-HZPK3-LLL6%7VBGN5#,/#:NP3]!F2G20T.@WR.X@D"N>FA ;@=5N
M#2R8A#Y.U5TNC43B"GMU,0BF(#C GG#)@,%-AX2R0#'#=DNJ_YILX+51E=AL
M[%((9-:U'2Q'2IIT;_)V/%C_FNAP!%Y:D7_B,'Q/&4&V39>P36.&H5\8!$)"
MODK@"J/)/PN?[!JOQ2B_370NH^H%T:@LX44.TRI-P--<-A:[HD4G]$4/<UXB
MOH9>4$4.?" U-'!?WG?3@Q<4MC<J*Z^Y]%Y&RZ/P@=<KLR=A5Z2"" D7+9QJ
M6$DK"=6/?B5=FO*RDA#+P149:0DL(89OX ><736F:PZG'+ZBD4:/VX<VTCAQ
M'<>3B'D6."BN"WZ-ZY$@#@/*XL2VK9"Z\(\W:?#A) D+D\2/(Y>!AY/X#-ZP
M/0@9/8]'S+4@ )QX4987!$GHQTZ(?E>&3EI"_)AG/K-\ D%I.FG$$-C@=65^
M&B?@Y('?Y?&80H HFE%X'B4T\B<M*%+;YI%M00S+DP" <6B<.!8V^(R"S/)<
MB!8G;2Y29B<9^H 6. 3868AC"PHO]DC& 1XWH,FDV0,XFL0-TB#FU"< >>(
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
MIDZ2Q8'/ \>W YM,&T)[#K==&"A.+5NTK4KBT(*)/%!ZX#VS* @G?C5/+<)
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
MN0^UG<.A-=LV'4<?6M/,>9+,Z9K$(9HYGQ=S'O<Z]X.9TR%F\ @7;\Z#.9]
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
M)TP.V+AP9 E6Z'K"B\BUZZT3:H(9>8G&!<8'7PV]",$%.SR[,4%C)QE^Q.S
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
M#$T1X. 2N;Q$8P\C  OLFE>PV-(_%K6JQ!VI?488B$Y[H;M #_<A8F=<@RN
M2&04/"NC$T[V55X5^-M>N"9>\<;*XPJ'CJ-WP3-<]\KH554+W0A+7BEG\QH$
MOZMK6" @9TFO4 ]T18H>1(G,#+H%?LB!7Q@Z2\F-NCF&TS3'8@.%1Q"6$:[%
MI36@<1_>[..(NY3:G,!L6^AP MZ%^.9KU=L_JY8+OOD)#![0^I?K$DB!NNW
MU) &^RU$TR $?:S'0.> 6JSEZ8\^?%";'\!XY7C_ YA/L%S5M4U+I5TK>_"D
MY1,@5@)$L%G5)4?EWNLY^>R2IJA:QX,DM! \ 8MZX88C-;[- ,9 >XA\<>G_
MZDJAWB4S":4^4MCPYC_>_PK*MDC%+4.EK-$\MYOKCO 4#BF@RYNFPTN1:"U6
M\$=5WXA%(WQ;L"GNO1V*8.'?!X04Z 3,13,$'28&%4+F!__ E*H+9D&!WFYT
MAVM?>"^E=[ )3/!R9B?D#0)5_+N$MXM"!BOP[5MXM, UN$+9#']Z#\;KSU?\
MYJ#X? !3' *??Z,EC'/S9<AZNVHY1)L*71#]U>DC8VOL;9P>^_W"V@I7,C#@
MZ(N'8Y4:'_EG@(T7G*'G* Q'"3X?#%8/CAE>=)U@FT0S8]L^%++=A:60#3X*
ME??&]Z%]$&CG=FPV^>?1*&.G=HR=0;M_(4:LA?MPE-R+D7WX:.#?\A(GSH!^
MP(?.2^/"</:P8Q^>B2P-("CA[37G(RS94RUX.I[%+>&T<B[VW,CYI6N+JOHT
M3NH?VL/X77D)E[Q$OP)39B(JO^+B"GE6<W [\'9[5E370]!<8 H0"%.V-Q?M
M4CZ#;BNP!T94P)4KC,F DV2A@XH)/S@%DM;"HUZ"BN&2(U#H0::9H"NLN8/0
M4M1A2"6'+PQ8(RV:2FB,O.R$T(M%-_EE*8(/B !N==?17>V;+0Q1",Z%U1=
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
M-+'=0U)@_N@-Z)P=U#SZ#R>R!=YV,@Z*O?Z >]D!_H#^MM;P:)GAQ2?SU.B
M64STBZD/G^3MF8@M.^X !PDW] !%2$83VV-J;W^=F'F&#_4F/ %HK1/P(*%J
M600\M>G!H>#/,WCJ+7K>\R.V9NC5 ;T?'?'<Y8,?6A'S3?B?IP5 (^!'.T?+
MWN#SSJ/!G &A8*R-SO;!(V[JL]*?>2:8\LP"7!\9#GB;!3@._F[,(%/B@Y,=
MQWS***&YI5$=73VK@VRGA++ENUL\1T( &.CI"+B(H9%! 4L$S,?38<?8PF[7
M?L?2RL#7]J'JC W.'R\8_&>\F>+/Q,O#G8SXEQ^=,G: B*$SEJY%P$WA.Y+G
M(;N/#C_^2-8&J@_>!813\TPDQX3APSC !#H(+?G?Y@$/+CZS\^V?TG8&V6@&
M2?C!R(N2))YJ&TO7F_[]'_.?=Y[S!TU2S)]HH.G[(=2%ZRW!0%0# _F$K1D$
M*3II*WLCU3$W,1YB)K>!%Z\#YSWZEN]#T$&H0+!'O"#B_(TQ\$)X=HAF$"/H
M!&&L(+XA,X"PA<X\!#,;FI W+RW9Z^.U'UZ#S\''I?@'&7A2&BFMK:=P ]Y
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
MX&5@\.@&\J<P./,8HY:O=_N2[9CD8KPF)_(Z#3 (/6<V05,T3GI?>M*[Y"S
MXKN>:> -N#CAB%,6)_)]MC!;UXS#WHYB>[6LW)'62D/KUX2!WNJBVTN NT-3
MB12W'Z#A%"-.,6*\GLA/>@>O@Z"FKC*LFB%IBWKLN0^\X_26$*_ -:*8!"N<
MSC7Z:K&]F:1BW3-FJ@EO$9\9#LP8PHR8"[-).-F#DSW7I4"/[O#$X)$B[*0=
M':5AT[YO!&]$G.NE4Y9&M4)UFDS2<EXUO6Q36L*KV: ?Q"0$\B3[K'#:!Z/Q
MG-!X='?FU]#HENK!9J+3S6EK;COI2KWM"?,11"/T<K@$1Y$X 73I":"LZP>1
M:V/X 9"=P  _J9X#IN 3ID/ 6]Y]5"V%17?XZ7755N%./\2#DB,A4N5A)B;T
M\#:__0W"J'28'8[S8YI69&F=NF>3M#F<ED1XK&C?8EU4:?58_"G7YJGAO,M*
MG?*(#8Q-34K.LG"KZ*=55B\V<#IZ6O(+6U!_11KDJ\D]&[_B^,T%XAU8/3,8
M9T,?L#?V*FI&\&._@NHOATNA&3:FIMUKF#VG7A4?1FB:P,L7$R)Y$K\"9SO/
M#!=8#5Q)>/%K:L#,KS/%\;B8) OA1N#]S/#A46O :<+P(I7@:9Q$O> D:@J]
MH.T&JD5HD1 0*HHX<?H4IT^O2Z,>?Z?O.ZD91U',E#.QJ*F="SV':PL+5@<N
M% -=*"I!TD*"H?$6.9PKO7KH'7\/^3O0VVC=]'I#=<=3->N[GC)Y=#:P]LM
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
M2R4HFDDP_/XA5!2#70.:WF"+UA4[&C<</4[I(-O)3Z:=I#Y]ARVQ\$2!:H(
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
M?YXL0/Y]#0_>2[7< @_>L]>WP(/W$@RWP .L#S 6/J\'XGGSX+U@\C9X@+&
ML? )AYU^SGW>GMH<O-Y/?48!P06L*K;VU^;]:ZX%/_SOM]2W7^0'.JS^=4>6
M(1/>VKKYGF9X-%2/D!S=T(F<H1GVP/ (ADH0+W7%^>K!SY,6K"_/3U_^BA7<
M__=XLGY:S?C[-G]7X]&_JO$H\HYC+EKIP1.\1UKT2Q7QXX@!?^EB0!Y/#$X;
M^V(Q.*$84.*EN#M?%/9]=5^6IM25:AWI:/KZJ^GY_'8&D7-R>W1'";FOIOLX
MC1M@N>6F>L?G0D^%SU$H)6Z[TG9WF[#,EJTB+8BI6:?EVF1ST-++FO4[O8L7
MAA/NW$'WW*'A?IB9966U8$QYM::ZW5!,;AHCA578;_\P"5)@$CQSDFYXMZJO
MK@FW-W?GPVO<DB]P2RI^:9EAU'S0F,J4.O<%FR^NY)/@5O!+4KL14LG.G*RT
M-+/GV$H1GJ@58(^D%,<G>.XD[>RB@."KY1?C%N/VUW%+B;NX!;^EJKGBHCS2
M;6G-Z&E.+6PR3"]]"MRJG?+2&G'+E=3*"=*"),UUCH3GVRD2 I>GN 0M"*?I
MB'313:?//TN=E5MMV,FB)36[I:S4NH0DW#EHUJ\NO'VF^;C2CL<H@+O9]L:?
M',UE73^0A[&-.6!B*BYM9/7*X%%:-X;5G.#P^=0\K7 PI*,3'$6>JM/Q36BK
MZP;R;=\Z\\GAW7M ;A8?I)"M5%PIFYUZ]..2SRJ-$0 RBO$84DSPPJER,U^Z
MX1$#&0/YDN*]]X"\?F1Z;=GM#4A^LWS,9'-%OJ=!BQP%?13%)!CF)!VMOWJ;
MTLDCO/.X.@JV-@4O*'BN[Q,SSQV: 4Z1XY+>1:88CQT6WG">\=21(-(W=:1N
M#E@=SFV7_,F(?Y3XE#\;KVBZ-5^,%![&@1S/)&CR)'G&6]5:5X?>6Z\2G#K\
M>QN]<FXY$=R',2O)7=9KJ"FYSM 0O2#XXU@^(:887-[#Z,7H_:*8[VWTBL;4
M>\@8;'U:KG3'R7YY5:(<V$@:1GP<225$]B3PQ46^$Y/6DBJ54JV0( I236JF
M*T2ZEB/2N6JI5FJU80/[KD1(#W6IUL(%0%P _-H#U$>.Y&[&=)PZ;&L9E@6X
M5S <PU.MM*.G==MT3#_P4,,F:34S'/]0'G'0[O22*3]H206KW.N4BIETMCQ2
M!+194^!A20#7]6X2GY_1F.!\\'GBP.R7\6G)_>I#J9O)DLFB+P9Y4?"SC0;
M)XC9&$Y("*?9V75#Y3J,SPO YZE#KU_&I]NX%TNFO=8[K2JCMZ6<N"HRT'["
MJ(QAR01)GN@R2ER%.RFUA72I1L@UHI6N2' +9KK5DMK'B[^^FCQ<@OOR-.!7
M[Z7XY!+=5Y/[ABV#]NN/RPX "ZKI5%S?EYV<Z6^[\,K#M.\;P:%# VNY%-;8
M8%4EYSW.RS0*)<&A1DH*QGU4@F/)/:/U)]9]6 ?\9JG@J\G]8AUPZNK?3^J
MV</8&=%^(3V=ETN](17F"\$:7B,I0!W LON.ZY%T "X'GA,HL [X1!UP\AKB
M3^H JZKG.DJI9DKK34^OU^ZG;;$&_0 8OU()@:1.H@1P4?$S-Y'*,P,*H3,B
M3$=S;0,G\'$5\4JRH+B*>,0@\DE/E)":@';D4.C8Y2NLE,_=2W:I/ \UUN$>
M!@U%1*%C*I5@F10N&=XD&&^J)''J:.YC8!3G$Z6;6MV/R&S>9UK=Q_I(JRP!
M&&$,)Y()GMMWX'!]$(/QRL!XZK#J8V"<EXN2^3#GJ2D]#[B2L[!X93P"8$3!
M% \;GYUD-PTN!IZ86KE=E)I$J9:5JQ+Q1[P9\\_O."..JX$7>2C@\^G^LI-[
M7[[>MXGOVY7S+SHE\^7KC:LZMT3WK<HY+EQ\2N&"HM$+2O!Z L,/<-T"URVN
M*SN#ZQ9'K%N4G 50$K;A!%%Z9JLV#J1H.HM)OSA)Y0>=0LMZJ LAW<OP#86B
M4"O#DS1,N@F5<]EHO*E<Z:D+%S^!1K[?D=>-SH;K)._EH99S#=H=+"$:8?F"
M/&$["@Q'#,?S@..I2Q<_ <?Y:)B3Y>YH)B53BEW(+S)4(Y^&<$1=!4]C'G'Q
MXDLB*B,ZTH93G+B$<9$IKZON*7@%!Y*VBN;'1V=9(1=6NK3B=\KB;%-O9ZGT
M1FS *8%0C$]0XGXC:GP&"</VJQ/0UWV&Z'W8NFZ@Z:E&4)_V>*MDK^=V,+='
M<$H@9DLEF!0^-H1ABV'[V4'>>[ =>97NE!V4>"DKI*U0W4R6#VT$6QC;B0F&
MVF\D@T_Z7%K!+#M6G1%XEND0P=@@AJKI$0O5"@W"'2+Y!',Q'!#]J9Z3=,.
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
MOF'@'0.H/38(5=-<&\QA#5:*<-P O Q('0%F;X)OCSS5(F:J%Q#ND C&AF]
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
M$!$7RKE-WR)<(F$W?:L  0&/B$MFK:9O%2 B+I6\F;Y5@#$6F UYJ6Q(YBB
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
M+F'Q7=E$%D$2NA\*!M\AP*\:X!?KN/5.@%>0LMJUZ=G.U&:&/>W,A[NI$0*
M@[@\FD68XPIW&)>'<?F[1_CENG"]$^'\;!KVZE++1W+CRJ#119U=GXJ/</;+
M=QP]V383!NVO,VC_X(OE'TLR?BK44-XHZ8"1_,M'\J\XY)DJS9R.,HU'I;P[
MH9)+_GR]=^GQ3*38GC(L\0*S'4<J.;[^FB"R%(; ZZ\A*7&["$U%I<9;"/6G
MKMIJ[49]9-U$"M-!0%$+CP,(!6X1FR7@Q=BIY&4@0J_5NWDO0O$-->ZNV<E<
M["G:-%!IV5"H#D#HH6B#A@W ;HQA.M1L+&U+S_F:NX*D4F*DTM1V5<W-'1[^
MACK;C&<O#37S+R3^[YH5>/IF>]]U'S_'KEXMFK7-.=_@?+5H8B6SMJ?1J=[G
M0PFCXBH0(LN@L&-8TDP4U KIT JW[JN]I2".JL,*W<%RF7<L9#=DR\&RU'6)
M"@?T0N2G,2=NG(#<U5FY*Z@3TJ$3[J FY3<MA5%CU.GATDX4<D-9ZE>+U"A?
MT8%&8&-+@4[HW@3(=UW ,\2I^/U-S<\HLC?/.*Z],51-S4QW&?M1<#)@ES?G
M]1.O<5/?Y13>L%Y/K1*_+9HL B4?8;+] ,G\3O0T-5+J3S6&3Z@\H<79<+)K
M6O2\+^Y6FBF45FC5!RU9Z-C?8Y L>D*-0XKL=YT[B.Z;1W?";ML?H1M9V'Q^
MMS5L4R[LK.K&\^76J@/0#5J@,5261!,BP.^!7H/HOGET)^V+_1&ZC<:LBH;[
M3E>DD*!6I*@M-5US -VQ!X9E$2R1N SDYCX5VCS7*V>*]=:PEREV6XU,I3D0
M>OU*LY3A^'YE4.E7A-XW2,Q=2[576BM:[WT5( -UXU.&X@_)EHL7"J5OXZ'X
M0U;ALJVOVH&KS&5PTZ0] \Q"Y/SXNT/]S#HPG)5F^9!/@&4S5TWJ)DT"M.4=
MP(G7MSDE HVKM1]PU%[*EL]9JO (I5/7R<EY1^G3BH'P\XJ-F[E2BU^%$L8"
M$@##LCA^'"6$-YK .IDKAV3"D?L_@F2OL=SM!S-W8.X:[G)<'!A%O-H!D 21
M>R*+XDE=,G0/D7L(R71",NEP^Q]!LD9OE"HO^0NAAH7\E"DM,5Z/(7FH[Z?)
M9$Y)&&Z_H&OBVM$(5"\S<^U5QHLDXC.<E!MQ0],;@X?M6J[7T7E 9#$"9"_"
M8VOV'AVN-,-::4_U==$@IYHVJ#!<6-8E' &>#IY%D023G>X*U;#-VFVA.FE?
MZ8]07>AH@6<6MSFQM:V[5EZHKKIFC.KXID>,3C#)Z=Y0#5NKW0ZJ$W>W_@C5
MX\X"Y3R4:XOR9IB;#S;\CE5B5+, U2C)PG9J-T8$'7E;\;WW@6=8F@=K2E+
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
M/F^*-0(;4NU!VV\50H#A^"[I+)GH?68W@N$KXV1BU\B+?"-%,S:'RZ27AA8
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
MKC(&*DM+]ZLS7CE1@V2===26>,?-*:&=LB)VM@I8(8[#&@^37-6<60! >Y\
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
M S 1L!T0-U UQ72]62PA@>X"@A!'T7Q,YZ0^P IF,P&(OF';+B$SYR'A:A4
M;&#!:YH+)PAGZ3O4 D0(_" (R S5&JHFPWB^HYMP%!K>>4PH;-\*/%EQ#=M5
M[9F= ZJ9BL700L)+F&45W@!*,677@./P9'L6NHIE$,^V?< F%W!7!GN2:)(!
M1*+KG@OHJ<Y2K6O[EF[9KN/#LL7.*9R,;QBJ;U'+\)39BX5-306>I3N6[N,^
M=-@"$)^CR[+M&;IG*L',>2AZH $B>@YQ?: /-0 Z-PT%B%@*#"6@1'-G8$4]
M#1-778>:NH^PPDMF[8#EJRJ^9JHVG<;V"\_9ZMSX]G@W4)O&:*=]WMB_-*):
M"\WLV2>=-(P:<J]^UKEJF:W1]D63/O38DS-HX6D!L!CDXPK>4&T#VKHFK$4"
M3@V+LO 09@</XJ =7-P?&O6&/#@T4K_>WQL/'65^&<?*09P\2E>MCM%Q;OM*
M=F/KK18^.;,,..=  2Z*%V7#6FS=1!Z+5P)+U/ #&7#4FAW\<O-D,_#.SZ)Z
MMUK3AV<Q.=]QL"7'W#(L/3YKM:/=2**'G9:Q$1\25<$GYZYKO3! N@W/S_:;
M2NW^YM+<N3\>[6!WK;FS, ^[VO;H\'%+JMKZP>GHPCFXNL GY;F;7?U'E>SH
MLJ'6!\&CH9Y<9:1C8]\?>>XBW'WKH'>G=B)=&I^W'SJ8'AP8[%%C[HC#D_ZA
M-Z[?U1NWW<;6Y6-PTAS5\%%[]M&J=1&VT]NPW:EN-GS:/FOLT7U\5)EA\[*L
M>" ZB$-MO!/=I'B/,2"'X2JR!RQ%MNV9S&S?<H&^@*0DJ@.3T"0+!)RN #.G
M=J![>'?VC/!17% HK0#P3 5)I4E [2 [/=BI:FDPEAT8=)8] KNA%(2/A#<*
M2X <+K4LX)9F(,M68,R)7<5V/2^0,4L\8 (.V(KEPI2P&MNR@*)GL[\U25(!
MV2R0OQ8@8 !\#IB&[W@RE0//,XENS[!'T!U4W0(NC;\*R@%R<3")':22[ /-
MS^PC<&6#PLX]$V\?5T%Q<H'.@$GX%GRCF1Z=%3ZR*U,5F 1R3A ^$G$(X)&C
M@CQQ3=,(3,F=/>SNU<-N=7B<)-+F_:9/JQMN7',7WCA\O9,>7;N6/98&9%?6
M@Q/#.#"P '6.@-R#JT-K+%^EDA&>1+W1?>>,LE+5.0*ZIO7;:COJ7C7O3[S0
M\(]/+-T>PI-S!%3?W#M53P)CJS-N'VV-MH?2YJ&'=Q//$U#+M>[L0:_C=[JC
MZ&+H[>X/SR3<TCP!'8^/C<3H[YTVN_6;S;N#!VOS\8X].D= 8U7II_9M>MR\
MNJ.1?'=FW;J/[-$Y E+\KG<16A=IQ^CJLGM[,NB>7>'^9PD(- [0E-3 ,0P0
M49JDV([E@5B0;-\ A<>6[-DKZ3W@OT L0&-4<H7>BH(=]"W02"FH?F1F#M.U
M7!MDE@,R%>69# 1D$6#9@(*J2ORY"\&!E?J&JJJ*X^HFZDDRR*F @$JMN#J\
M:5M4F44\EVH&-8 ^92(C(Y <>,AP=%W7;)@%]-HY(!E;%X=WM_>[G>:]]Y@]
M#K=3US!/'7T>\7;CQY.=#;TW[(1=^U#9V.A<;)X.X<FYJZZ/8B<9GKK>?I/*
MXROJ.I?RZ +'G+OJ.CKTCIN6U#QLCFL/NP?.^.;QV,8QY^3&35"3O7"L;]3)
MN3H(^F>CQYLFCBG/\#9; ]7 ADEE#^L[/ N 8 +12J#'2U* !1NS!@)HM00O
MC9=)H*%R FH*\0.P8A0K(*YF@18[HVK8 9P!Z' ZZ/V.1B680_?@I#R3*EI
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
MQ?36]SGP*9Y1=O&"_*@R)R\@!<5Z*=QZ)1X 9'O L*=.-:-<JR>,D!I>%KL
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
M..F ?LHT#?,?YCB@O51$66FW'\5CFHA?TP+_QD $ \#?TF? <U">H\E7W(7
M1Z#HOQWT*VU*(M 0O8B$769[5%CDK/!U<Y8%ZVP#@%%_JZ+W G<+)((58.BL
M8%$TXJ9QX@KW,P9EPN( 2)*@IC>)1G-R!&VI@PFJK$,G \U$NV6.3\\#-/2%
M"LR4]$XO'O:830^+;8<IYIXSASAHMCY7R. L!FD&+$+D><,,]6+8B,\%VYQD
M2.!:)WO)W?-,:4=?!8E *OMC'B+OD]#G.9K"#\R47!;3Q,7"2KC"#<>6H,Z&
MCDJN$XLB%*X;3H,'PR$A!G$1$E/66QJ+K,\B=!*A79%PUA,#3).JCS'1N,^F
M08"NY4&LYS%I&EO8@',(LR;45D0)/ =X#"/3B5_%#'_XY&4#9,8B"AV-URL-
MV-D$I>=/'P<L>&R8>H.4YQ94CN.,_K]_R8;TCZSF256;<;<;"G\N+G"SS+_7
MA?/[75PU>0F4*(.\8GO,QC/>FK;=L$_OC!.[3D;G[?V#?B<;I+4_A<OFFX9C
M2=_%YRJ7.6LV[@NWYI"O"T@%%.:<W8C8-F8FB:@O("AL+1*1JA[H%L/*4?VD
MDH[3C'8G%2ON((Q\P5G8&T+Q &N67?O8!CX*K%&$Y "AP4:A&*KH#9!/ 5^?
MD*!8&BH+,&,I21LV(*AOX09> 9]+Q775E'I?_4$"_,)/::_<8;E ;&:X-X)#
M7%(-X<?+?D.\BQNQ_1@>= XCQ=BQPP.KWMC;/QZY7K-SEPR_?$.> 7CB@T$S
M2ZGB,-)\M$E.?.DLP*Q%"Q@5&BXB<\S#['06[9\6'$7@IR0Y\'!* H-EDB#W
MGXS%1*"H#<A36 HY6P2%)YYI-OD[Q8J85^6"C)[2[X+>X(@\C$^=SA4]"Z)[
M*<DL\L<$?/CV*Q<8,'U3OL-9#88?@>E/_+>"!\0#[H?#(EE .Y;MFW*5*@%!
MB:1-,!<G# #=6$50R@4F#0+AW,%P#88\A6\L+6-PD62%#TYY&UF&1T2\#D\:
MB8,U'CQE\S/5X8'PA(M\?([GR2#")>SU"@-JC0GEA&:8[()<,-<E\,6(#/-U
MK57N!GYK(IDCL+2B"N\Y@O4QF$G $PH!3O'"+;*H>YK/@X^3*(V+^#H"$A_-
M,%N&>1QG,DW+Z4TL!XWI% LB:-XDGCR3G#/QE57S[+6G_.R#7N[UQ47E-GVZ
MEBNJZ%YFKC^1*+Y ?6.:L4B\P4?CF03P-W&!EFGM!VMYWR&5;9(/P11&EBZ1
MI\=.\ELFVBNOC,M5]XQTJ,AZ%">ST/L]26Y,B[S\";8QW_<4_I4\_QF(C)27
M@P/];)6"K6+%T]F5Q>13GO?)_).4HGQ6>#],)W4$L_C(,U:F@KR3E)($$TA2
MG@11>-DK(-_SJL+)=,(?'^99H'-!X_E@\A158,IX7G'&"'R&K,3[DW*S&6CE
MLQ1$CQ/$HM+78_<W\&0Q.'@0U/ZD!#A!@RVW228YCR3O!, <1)/<K,+%0Q&1
M6%;U))FORI/YJIB05T63CR4H,QC%K/(#N78>1UNP>L:"BK VK]M[OXR<A+8&
M8"66X_L+X,,T&H!(F+8%72W:&5.V&$T)G4>45><EJP57Y$*DR/GF6,8KL(L
M^X()6,RN"RHSKQY'PLYS$7[P>-;$^:S]] %5N"3GL^()+T(2=.@*;O_ O8$]
M3+&&#TS$YK&7<E[]$^B8YCGY,/,Y"M5\DASY.;6F'IP'B&6?)9@E*8GF0#=%
M@9/,/'%"\(1()4$FNC;SN<+"EB&FYB)989""V41IP7GZ$>FQ_8C<JY!+SB[I
M\(,-TZDL47PM5P7*F\1W<NA.,$(H+UR;PXWET&3C%'#.0?-.1'0>MGKL3AG8
MTE-[F\9UL UR[IU'FMFIY4ZE'+K\)+A)([(&$M#N>J7((./^8 H&+-$\G7(P
M<V<WH$H_%%G^+HU"&G!;%3\SY8H"(O0F.HIP.O:18@CW<%'^XH/(WIGF=]PC
M]H3"PU)X7)8XRI";$1+&*9E/;D'J$!<_/#C/TO.$\Z^\K]R&QGF?3HU\)VRX
MB$6&>\;00.1P<H2E/1*Q'0BH<*S@8@G6S'!B *I)$N8V/X;BN2)(QKE6,=ED
M[KL3.(0'ESM!&63%;4<\&$*81R_N\67Q^/J3P,O=E)A4@9=/D<)"X4K\$P6)
M;VG4PM(P]LJ'.@O3#K_ "?^:Y#_U[,9A<[AK2E?&(#I[],;1=7-!!XS%S_U9
M^4]3\&(GR %608B]@UDLM'3AR^$H1RIN$A,09DP'19.-QJV$]$&G0$6%:X1H
M @ME#SW8**!@;%ADWE.&;6[B0Q>IV2AHDY!RY2+WN^6Z)*L\$_YL//4D3P,L
M\BGC88\FN8++7.@T$?8<D T,Q53S4D0A9$.)W')>"\FC.7=Y446,+((]5MI-
M;EG" R5+=*JG39&YF-?9K'(S?C4W0U_E9JQR,UXD-T.174,R"$@Q5],=C?J&
M8]FR[KA^H,F^H?FZ)(G<#/&&+E/;D*CN^('D.YI'";P1J(XE$9=(U%(4JD^_
M(9NV;012X!B&+\,;GN6X'I&=P# LS2.>ZDGR+^=_/)?1\9QX?/V,CF?]I>@K
M$^H,<#_0M7B&/.?C15?C(LR[7MD%+12X$5<Q,8B,]6R1*)@36E8>6,\+WX1"
MQ8*\N9X+"G&/)]2G9:;-XT#P[GIEFP<NYQ5HU*QR*8,:&^TS[1?L1[ \<\L
M6$W$*ZI 4H!,S],"B0]V!<NDCT7D8;$D$29#;MV+&E<1>^8*8RG.S.1*'K0@
M95,482&&Y9[*29(J ;T>K<Y2' M]*&O<@<D,C+@_^:WP-.$6?[!G9!^,5&=K
MTWH8V[6Z5@^;=Z/&^,P(K_>_<X_HK%*)+6K/4)ZROK3XZ0@,\>Z@*YK0YIUJ
MY]3*C?$&&)=MK"6:]-TGH%:<\9*N[[]_,>Y/=\/=%!"9>U:,%6O#'7*J.'?U
MQG7L;!C-1ENVIAKB*C_1[G)NEA-05K"XOD7EHLEE52D%YKHWGK;C5H\NFHV@
M?U"[C+UZ<Z?UY=M\<\M_\T9Z)2,!@9U7N[U7:M,V"9-+=-LW@NW<:[K'F &S
M7F;"[N;Q#;D[.1I>=:KN[8;5O3N+:I>M/T7M+P!0*4'@7?WUJ+^7.P44JRKW
MA&2E.XP-XA_H27D /&5]TA:PKS41SBDI_:7G@*OSAPIKG,7,TB'IYZ[R@)82
M;')VNU9R:++";MI=4(^<\@+145$$'";EP)$_H'FP/P7+/N/5L#W"O&]%'5$)
M"E.E2KT891PF&J(42H05LL8*Q;'I!BO[X,P9C(%);@YAE;3 L$F/L>N)^%E4
M3LU3FMQL+@85L_2<7C@1 9-9)IN>;5]2WC/:7$S ,)!CQR/T6.!DZXO-EM?B
M#9B>4$IW9.5<X^?+(/<?+VKNM;9WV=D97=VTE<L+Y>3JC\EZG"0\YM!X!R=
MD7I!*O_S:A>+2PQ?9+N,+_!)&I_W[Y++CM\9A\[-(&E)9_IP^K8M_2?$++;T
M:O3RHKP]9#7)@%7BSZ%=(76-DM"].CB_/C^\#VV)WJ3AL+9UE(ZJM2_?M/7Y
M>RTJ7504 4:LV=C"'B](U[C-G!A+[ W[Q&#3H2$5#//I/C&U"96##OE1CPAI
M'X_G3&!;#70WGQL&>[WS%EEX'FE?VKZ]J]\]-$.7^NXY#<]]V, W,(V?/@\1
M56+',B2E3DW, 9ODLR*XSW?^'^GV_ZFM%7534S2,65;5<%3EH?:ON^Q_SIA8
M7D.M1GZS4=NK[;G7UM%!/%Q(_[]*LS]D5S_1ZXC7]/HT*5@)_]\/M$GZ'K@V
M8ZX8Y%=>Y6U7UWD6*$\.*5"[9)"5*H=% IA(U6.9 KGK,._;*L)=><>,:9*"
M92!:KO_,MJ;N1'BCGN^_G</QV@JZ,)VVD[B[*>S@*] W<KMH7A0/?2OI/-Z>
M!DVE9]7-ZY.C\^/Q<-Z1O_BY5W7D/U.ZZDY-,"U^U?6*@ )W3^=P$!E8.2A
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
M.Q4RO\C&>L8K9<KKIO+OLBP6\^6N^)?55M<E/7=-%7\N3BMFK_ZXI/]/YO_
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
MBH>XO_0#???S(T,(FEU>RHR8LGW"J:TIL+KHR07)$DQE!7]LS;P+!.'%@5;
M1\'-<K:_VG$"N^;T<;K=[)F; O#GAU(@%*CH&P.&&^%FGJ*GB/E7[F-/W@F\
M[%=TH&M_HXBAR._/HX5^]*#@2'"UP>"%Q%<;^5)58Z1%LZXZ=K4B=+>P9NXR
M @A<G_UU6-#UT2HVU)X ^"VAG=%]T'<*#Q_CO6X(]:@.@0*#KIDRV\>6 -<#
M%*PKD';G-$2!82@99\KOS.C"I2>47<*-PW\OH[\X>8EAL\*HLF"5X:" :\EL
MNCB1+^/\[V+^-UK[9.IHWM%?<.7O8 ;+M+DNE//L3K'0OQK\3EDZRP;2F%QQ
M5LSEL/D.4Q,CMJ-56[21*O]&>/EEAADZDK&V.^616MJU>HG%M,/M,D Z*.Q9
M!H'K1/8+;)UB^OMZQC;(^GF\,[L,ZK_*3 'N\3PE6=*!?CQYG^!QX W0_D&?
M4#'== =P^Y;*D<DLU^TZ"QIX>0(%&E __(;,I '=5X =/#, YV9LP3NAL8>?
M0RZU@%( 1MY;(_"T@66(0>.-['(<&G;OB4<^]^+AGE:QCMCC#3QN*KGN1"?P
M/29UL@MA3.6, ]:Y!X]#G?%I>-R_/;;K[>TEF]/DIIFDBQE5HOK")ILK+694
M]MO/S ML[MEB%![R?O8V\REV&U,+0[3!X$S,.%H])&404RPA%%;T"PT,?M"M
M&02W,> @ U0"/I8-&!LR8V :&R^M=@X$L\='H);=] _+?8X7OG23<8JKNP4$
ME&!4!P;4CN]X8;(0[00"$TC^7)BYG4MZ',Z*]_))+R_71;H*C+;<C/RNP-_N
M?7WC%%7R4Y8KE+UUR>41,1CM@_KU&"Q%FDC:\)H#N180%T7([*T!28S,\2FN
M:LT1L)VB;.D4AK'<C(4;.I3<)X.M,O07=P6./[YD'G@09#.@-[6 VC^][NH-
M:&) W>NOO OZ*8 )O+7!EWOJWSK#Y M'E)'Z]0$V#':[@3?#GQXT*L W6IV'
MF9%DK'@3$NY7:U%T: -A[&VEO31AWW'PP+O]O)>E(V]CIMAH:TT_2X3<7-T+
MW3W%BFCWK*-1">SW&7ZZ")H[ODN]4<1+Y\77 N")8#62[/DNO!?KV\$@+U)[
MO*7ZCOAR!?9'1YE@U[ZZ9/$]&\B(_,IW9?X)EQA39JX=OQCJN4@^%A E#:S7
M1/[/D:PP76+]ZRE6EE!<&L4]@0DW@_M@_0Z[/L7@)3<>+H$)NKFQ!9,TD=#
MP+6O3@-$.].>5D!]6GYN(!BN/0:*!1X\!CSU@J/.V.=-3%^9!34[U(+>$\6W
M/P6MSU?::":V80-$=:W<?7W^DA+643C$Y>)C'/X\(.V'J[SZ$ U.RY)038#[
MDE.(V:6V^ QI421'V\/OO#*?I]@0FKY ;@"^Z%28 EX@.D=A,*;P\2A"%YP:
MKTD6(+,7O(?[Y@G5*^-1]-^Q7 -XKJ]?6O53K&&<Y3'B+GO T+XGO] TQH^R
MG'!A, !8EJ$Y[C:BC(DK,H"]O+EN@SZL8[G3@,4<@I]JB:TT!Z(%U]+$4!P'
M4C60DWEU[G##7MN&6QO)SUG1]0.%&XXHZ&@"4*@/[(+D*C# $)Z2/TH#CP*'
M'O'A3BV!%15XN-?_5/[E:@=#\^.\AF,!1O !H.7"/*"!3_%.RRV*\LNO)"_)
M]T\%/,POH$*Q*12JA-57,$]U'C.U_ BM6]\ &WE$CQ'</_MG0<TC@WJ3M=#C
MT#04%!J#-9IQ^%@)JET=!E@E!>&*Z?ZH_QRHM)"PN?I(T" 1D.H HR#-T)1=
MJ^>Y89"H[G)=^GE""WG>$PM3XBU#1X+NF6(DU<@BG71(4#TA>HH&<D+=N" ,
M^(*9Z:[J<ZPCNLX#H\GK^X^"K)E[ ]2BY\V[1+-B&K"/$#A. 1L?4[@7><AS
M2[&S/>_X6/YG&UN@KJUGLHPO0T&DHB0A.-C#P] H@LDYIO3J&X[H\0PQ@HF?
MS19L*'S0R6(]PPRH.M'#"R*R25[((J"/D1I&"!3\[4\O2 /(IA?(#@;389 ?
M?$.4@/S8KM <73N8YH=';5F7GIS+GX8 I-)7'DA$/9'UXM6!\D[6+;UXPSSC
MO[&'@);>$RY8 ,4(3EW\OOHXRJ6W'!>D7%4-V+_!)U[<..Z5+B$\<7S>3')5
MAROT8&D>UR(0#OTNMU+5K6-]5M_%W#.MP'QGCC:#2M*OQ]6 0 !<Z:="CJ4)
M@1H6S\=VGPM<8*3L1,"29]DOI%D0<O.6"R0S,.;+Z)6*RY1+";I+T%8  4-B
M&7^I>A@5FSK KX#L=P3>YX;3/+H6IW((9$3!]WT':,E#_T='O'/,%+H"*>T0
M^I=CUAYHN:4OZR: X"CN"#<(?9V'CB*26&.U,CQ@> QPPE_!>;T<VD 15?<Y
M9Y)\C,,$Z8+FXE/%!XFG"F8()3Q+W/-*>,'C%P#.^F'*EP#(CY-#- O$B5X@
MT)'DQQH57WGXOM-Q'Z!OY28L8ZIN;%V'Y%Q)\M"[6#EV0(M?S33NO?!220=J
M8R",\B&,KY+/><)PCE4TGA<4_ Y*J?I"ZF[C"7?!0+'_G)L(7E16\X:R&CHJ
MJXG*:FY=5D/^5EE-,O2R&I?6!><(GLZ!*W* @NFRJ13PAV L&?@HOE%](9P9
M#P9Z?.R%-&@PF(ELP#E&^Z<'G='932+*UD\A))1@:Y"BNR$L$=8!:__R<LXP
M !GW2SE=ZPCFAZHBIII7Z/EJ^-=U$: %!A; S4G!Q[CV8^N6^\)@HJV=&F T
M X@;="\#851HN7Q,!]DI-E-VGN'W9^/W7GDV=W#Q,:H&\EQ9\"3H-\%*#AB7
M=G\^8OI@),Y[6-9/HDH['A(%TOSRO9YW_XNW'$.(,'[NKM^O33FO+D%/ P@'
M4!9B_./WEH:(B.P5S!A^H17O?Q_LI"48*PFE5Y$=Y1U@,TVWK!6 %0':?D!O
MV:U!#I99Q &2<^N@W$IC7ER W[CE L9E.QA@D;UD>URL2[)AHS(ECV0MMR;8
MI1>*-;HBOY%.E#NZJ1?=<SST86!1[0KF-H2Y L;YN5P!6#\(SX+2 ; *F!&0
M#.0&\4O8" ($Q-!=QT+P(O8!67#]&R"SDE_=!O8-+,/%,^B]1R\.F&"P>8$(
MV[.L=:HQX\%NBUX^W:T,\NEV7.\,\OX,")KK)0,J6K9;\118E2=8".7%W; H
M[TDEBLB>2LB"&7P+5A([VBUSHY\V#G@V\6#O[PS]YT8*?>8\.:S^M@>5P+F*
M.Y567/1/!KQV!:41 ,=.T0.\*HN@$H7L8EH\"D0*SM+Q OH7.<@#J@P$L!\B
M>Q1L0,E<]"I']\3%WE\5$A[KVYZ9/G3 +4/;0-^ZY01+^U]>,Y0B/P8//_$V
M$]FG8V[2>(6<SQ,-:DA7*C4HKL!-,=SLQ[&IP+>7@&2*H*RNY BY[R@FX)8O
M(%LX!QXET(D 1L-0/SK^R.VP $90X&$L[5_NEKCE^6Y@$A!Q X36W2\#^$LH
MR@1_;:'8RYD/] *94  _T!;B.8QN4<Q'[5G^U%>")H7F=R3U:YMH7J:% 8.>
M.GR@ N*#O'AN()[AS*,C[9+82Z1^D6#)L1D8T<T 'HKNV6<7W7F4=$L#3EMR
M2L5[40//F ?0E-<L,SSMSTL( ":/8'CD)/3!W_M8!*(/*+ZZM$55'OYL7'WD
M1E?B (F!F0J2:YO="#Z<4P!\PO39=?K[8DJH40B\Y#J?Z"HYTRV;/J9TC^5>
MQSC/\]#WG]:_GDY)#;>)"$5?GY^('Y:X G5NFL4-<ST? 7ZE .:(7E&I@ :I
M&K^(L_->M?ISHO%/;T/<,<]!Q']YO4<G(0/+$>;."JI!Y>M$&H>27\OMY6:@
M>PC(;FB*L/?DX*0@%0$U=(%W>ZX4XV=, 4?E \%N/QH&)LC++FITOVCYJ0-W
MF]&9M3M)<()QS)<J2,X/N 7B"=0S*B</2D86]N^:7E3+->UN-NV9J01MT3$F
M[J)O*!J:LE3<L!?D58C1;904AN]4I7V WWD;6%P?^;Z0 #C5N&M^63U"R3Y4
M!/P+]\A56Z;BUYG $*IIP^H/Q7/U@@\)Z+,S='#IA'HM?R\]UH<#)QK][S_(
MS(]@.FAJ>#Z)7]%R]&^1BD7>@9LW]]8#A.Q)?G+]9-U!;0YH]OL5DO2C<Q"#
M4[6M?X&1DC!WH[I!_>L_AX=J$Q@_$8S7@&=UK&B(07SFI?1M+]$%/_^7NU!7
M\Y[ ?U"S-TX\L70LOQ'%LISEZIKE+*\Q$&X_RFCX+U(V/CT\8(((%/?KIJ#[
M'NAF0-&'BZ"#.S;X;40B/U_B_EJ3=!E6;GB!7;>""YWK\9JF]'<A4-W@ZSLW
M:LW+'E]Y]2A0\YYG:GQFLQS$-%Y4XYB'@5MWDF'/E[WL4+Y:'^(%(&!0?F?'
MRF)DA,Y]8;2)8(OGL'\4O=ITU3V 4?#+:'^/P9 OHYASIY@^ZMOBM3VP.ZXB
M.ADU*V#5XD<7V[?T\2M]X37I@"^=&G0 .P!*7_;\\A"F0,W)FWL?/ZX=H%FE
MDV>SAY47\+LHC^$W/P=G%VB 1EM[C#[XVB_(M:Y#?JH@VDK'GF#@=\.YS!P-
MQ<C ,V2ONPAI-  ?D,_HMU <-4G\I(Y.\3B$I+W"*YC%>,G>H/8VV /OMC&Y
M%+S6Q^=-WD$\ <\"NB2SZ)C^+,_>Z^8R-XH(RSI>F-%3K*ZHTE:QH+%X@5A>
M9NE%@GFMWHALOUY@W!O_PIYZ<9:7EWOF!#UGH:Z9]AT\Z_&GYYV^"-[B$'$B
MY'"6 7S62?(^.C[HA'?1+[S%H4#5R7T%FM0PO0<$LG/\"_OJV=J7FLQA*7HP
M('&*,$+KZ5<R'[OX3U1V*V[=DPY\V#53[("%N7C *^#+K;KU"E8#Z<ZS/74#
MX()?!C ]%0>\MGQTD0&"6<$*AS,8XSX,7FF $LNGP[>.?H)7"XOZ_@W]-8/X
MVJD R,QZ1P<$SS/X(C:E?RK!"A2AB8;D=A"Y93'PEZ8$@)2.#A9!O4!QM^S;
MS9^?07)TSM@)Z/RZ# 76/J-P$$1R@*/A&5N*5YT@&*;I%FH&M"3@8M,ZS]W
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
MS7J#3-BKBK6ES^CF?*]4&*(_GFY;=G:468527#VGP2\VC&FQ^<G.+I>-ZG9
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
M#WX&2^#A4J787N+-'W!%I@2>!;C<>",)T?L!7X,_ C.<Q;;26Z;R[#SBB++
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
M+&:WDG1+@M=EF!9\C 4( M[UC#;HDT::9MF<R!#&K,6DTZ,43F^Y-/3_K_7
MOZ*L^2=/L-TM0O!8RN 2.L!5X\2/SYQ0OO<V_Z7L_8C9YEN8NCN@X7>:ND&I
MT=L,.U21)00QF9Z69^VY!,^ !NYN^MK7_1A;%R6C_Z9U?X;4]96I^P1IVA:Z
M325P%C>Z[^B#"Y(?]F2/6[IL=R;"XT1[0G+EX)6&OQ7;13Q?<*2^D3]=%#8
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
M )0!N_.2FH2P^74!>HK%SG)I@('@!BG EW<CCS>Y?^,/O)N/%_%SU5L$KOJ
MUQRIH%@"<-<!/ "2N[-S /&K7C1WRK7W$C7L3_8BR\_4XMI>]$M<=NL"!D!#
M2<S:KXSCX#"@G"5@.%?@W<!_DD)(,J @.TX<(^VO7NB1?(K!I<?0VF,-B8<K
M1ZQRO-_C$7WB;S\K\.82R;)C7>BY=15+C35X'> 2%'"!KF$!S&.#XH"Q"G)6
MO65%WOX;IU[18UG@^&JGZ#FZ+@8H(*!:#/B'NP,FW %KRZ^"EAHY5J(#-10P
MZ\""()F"'V]X4T$&Z.P!EA\20Y9!,W@WN Q<,D/;H(B#>V0-0#J(.JX[!Q0D
M*LCV77<!(D4PP>D>*E-+>F:2-_;+3UQX8D+(K6>Q:)^9(2_WP!PO7(FR)()=
MD0L2;/CFKR+93</V?P4TD.6-/KV. 1,UEHH ?R%YCYY:M:I\R+,TMN<[]H+;
M380"OOWM$#9$0<^ML.GM2Q9MR[,AZUIG;U8DHS)@EQ62UJW*L#*SD5/W=.W6
MG1(.+T5R(+.@J U@'^] J)@(]URQ8CT)@!IW/(;&$T^QOSZ2"B"? P1$/&E)
MY:0EH9PND3H]$UWP %4"L@3X-^XF[EWH!]C-_V=0W."XIQBK6Y)M0]SB"BE
MCC#A@H3]&?%T'P2!/G033!&I&[2U>8!Q8+D[BL#YU<.]N01FQ$/% ,S8!IDQ
M,!X2E<!^N,W4I\,4+/0Y_@-BKK,A7@8W%KC@ZLD?6P)0RD(,YL7Q/4WUG&[Y
MY;PKNF LP;1M\"]DJDZ3/9HT[Z"'XP2*AOG&/.?EIU=)3QZXT&X^XAYYSX]0
MBIED8S;8CK0=MI9R9*_=K@F%U'LU5U-")VRT]--'SRJM:B7'[AN3-8\I)I&R
MJ*+<9TR@M+"GZ_C&0R1)WT-I%2?D974D-M1$H^/,Q-72[).WHG1KD.@M1'R5
M5?,'>Y$2]^J@:,F0TM>G]?J4/D]"QB_3F\_(*_)\!5?VM;WO<AU3>"?E:'FN
M+Q!O7A"@&@//A?X6,$AS:%=]K9;MY6,TGHHR=;\/Z9]W1!Y]WH]"\DNW#S*V
MQEN6,MLC#22ZCJWDYY:1/0OD^04@=0JT$)>FU- E/U([,V#HQRV[ 4@_!I-A
ML@&^9GU'BT2%2OY"O6(T 7P'2)KTW?_AQP?XN<<6..+TD6VLT!:B220T?F\X
M]G>@?"3Q6">/^2UT_EZ?-TVYPQ!=OUW5Z+UKUA<%?F@;P7Q?J6:DKTKT_O<?
M&2J=^7$YKXLZOML&P[[]K$M U[J8#?>.VUD[!M2.*&>*:AAXI)$]].B&J13(
MPBBX^#P[GF3GJ@PN8K*_F<D(C\F,*8QT(E9P^2HQY2V$N5>.C8II'#TPQOOX
M:,0!0C<-L$T('TSWOF<#,#K_ _+B [$?%G'?PW ?Z7$?C+8H,[!<W7Z6SX#2
M<^M7@#8#KB]D1]T(,AEPJQ7+MN*GF#] J_!P:VA<P?*@=K3W$+F*\.W&*J9
MKM[""(CE++W"EI>Y5%0V/HD"O(,T&=QW\.OK])'[:>";@@8<3EB-/O\![X<"
M_/8=/?Z"08GT$YF"3 H^FKNT0PP68,EO9\\]>UA"D#3MDGLNKE!WGQ#RS?%$
M\E2@[F$H"G?3)"ZY3G_^U_\++N=4%0T5@6%^]ZOM _3SZ$(@EI>EQ-24>#6!
M$I_?>6W+[RUOL>G,$WD287]N) )W&+P^/!;X^;279_N]2P0(YPE/0I-F]G?O
M:_YGJ$;_^*'A5LE^1VX3,-@7NQ;@(P)_HLXW/(D_I5-7>QY*:H,\[<]_^!C
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
M/ZLRWL+-\2-Y03 =^.>#-@XVA@6,A.[UZO!P[QG0/) 29T@W6_BQA>Q$AV)
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
MPB\!] T3^2*'.ARX$(6N^F7:T/M1-%H64&DDKQ@+:B'B(H[XSS-'5D54UP)
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
M)7<B]N7]B6"N0$E!NSZ=+,2I9\&C.I..;2$31J"$ZN79+LJD#QT'R\8%(@9
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
MT!7EM:7,VTG%=1MDP5YSI70%X0-TB\@4 WG0>=W :#OHLVT'W<P[NBL#>&_
M*-<7*\LD&REB+2J[4MXQI_7L569YSM0FPVYC+K!#>VPQ:3-?[@[1+(?>3I))
M/M#9\[("T>91M'GTV<?XD_P2'QUQ?I;MZ0T]&K#K67RY-;:5>)=I/Z[V;89N
MY]XKFL-WA@O.&%([8F4.2KOFW&46^^Z405Y.BGI(I\]SVD>[1&^2<>)SC/%G
MV1PB('BUZU($&=&U)Z*K\(T<52CW*"J]>#<@B*M9V:'3I,(.=Z!$@A:[7W=0
M&DKHSJ23#]G4E8#@Z^[R?')H^%DRA<^.#,\EA'R?Z;QI#M8[KM7K<?W26&W+
MO:0R3J-U'>W24.F'-/7V?LNM??'J"EHA3D+IE[^(F4 W)<B^]EA3T4[-G^W4
MW'I']M9B>6XGY]9RN5\,O'\WJ6TO@%G5!!/P%B@"[[\7\%1:J.G-*.XL"4!7
M"Y-:>V.S^]PTC?PD\H$DKN@F?44 NAS9O?5$N[58GMTKNK5@7B;8L;_N%G9N
MY90]!SM0@O")E]PSS@6U_7CY2*S:59U<*[F9GD&Y_YGG\.=7@K/19M/O;C;=
M>N;=A9-WAW+Y!4Z$A$)2_WRH79L7#J21T:;,ZV[TT- H1=U!)0AN,EO?,'O
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
M4.'F:[Q2J,M5BL+1F1YX'(D'^@C:S^%PO+:/OF>CYFD-N,%Q@&<<X/F7WLJ
MF0)>BA[69.J+BF*P/;:+D]6RWDTGR?;9_),;HEZD^HZ^8O,B*$VGQ;K2F%PO
MJO-@-S!*[V:S35G32H(K\E/#%]>-,X5R+KR,G2Q0^!AKZ@NV,;56K%1K\W3@
MD<S$L9S7N'R]8M;#V:V@&USNS1A.)Q8CGL(*)(9WAZR'BU[9=:C2G&E?TE2R
M2SVE *BYI7F=]'3M2ZW-V%.@<*&@<,%3#^D,%4=SQ +EY"$?UU[O/?M=KRA&
M/FZ5-6M6,J/9JXT&^FE^N90'3HO(0L&"/*W0*,NDX_#16+#$FLIMNH$.1,QX
MU,7%@IHM<PO6&E*CPK++]2[JU,VLC>0*<U8J5AVG1].E4<H*)A(HR*F;P1]2
ML:82"Y184XG%R)]J*@V3'U:2';7(=H=.L3;+B$ZSCIH&!_YCYH&FW[T4OL^
MU9[I"GI\YW57<:V77_=W(&YTT.U)>1)*><GT4"?DJQQK)TS#NO:Z;D8AQGEE
MWN1Y.RE1W,+#L>*3RJW8V46];6QM4LM-AAF'7> ;O 92F5EOBKK.4S]^I=)I
M>-0<6L4QCK\WCK>:Z;47=FV/V>70^W'54;"FBYHW9GJ89W"@K$_]9JG:AGA&
M2=)IXH%AZ#B>, 9T?#"_;V*6JM.Y8^,U"EM(VJJ8\VR^FKEH$@ E;9KTQ,X7
M-4',U]>DVN=D 1W,R+E$TO1#AHE/YAC(\<E\7?A^_&2V5AS&9;S:!"NIP^&B
M-?2:^@R=S(%3AZ0><.;W48'_<07XZI.2234@R-R?)+W'D(&PQ8EGB7N"SH"O
M8H NOH3>%"2$N>D9KI,07-=6)UZPFPG73(C;JI3V;E)[ O)APD4>0\0/\%<[
M> *B,I#0U] R">R?+M!UB*&'1 D8P!;TX'M9:0[9QG'MH,UC@EU9P'" $WP%
M_R<Q$1SX#,^"W._"B0''A9P'N0@QMN/-K0 7IHS^J-H) #\UYZJ8F, WR*KK
M/"1,.R$DT.,1P)+P_2 Q!^[4E!*H^63"@MME2DY"MLUY8H]Z* PLJ:Z2(;%^
MEH/_\7E1;B;+N:2I@0%'U1>EK#HNMX]2_K.T"G]%#X*, *&G[U7/CS[Z\<LT
MP#/?!/]#.WW:H$1A]9=!B;*Z.EX'H6$:>7-N 1=D%1N .>1+)VM(O6<FBEZ:
M\O+EH;'F.YK7;[4\-[U<2,+QDI2H;Z@#C+^,7\QK_6R^NI9F7%5H]K&RHE2*
M$^7'+]>'4UPG9<2CZ[!&_3Y0$VK A D+8@;8 4^^YL:$*!B&Z29,.,[V50?
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
M]"8ZN,Y)?,I&F]=>V,WXU"[GWFZ 8R=JK5%TY992M;D2R]/,A"DO<P34NLE
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
M^M[ACQ?!&CB5Q6>4!,,M$UV(J:^VUT.+WV[1^RICN)>FEE@*N@<BO=0!V_U
M7NOS.GAN7K*W=" I4*T,-J1ANEUH:-C!7D"3 ^J>0&H:<-4N0--\-OL%O17=
M-!Z5]9;><YW%8KWA5*4][W1(O-@O0<4HPSP>5KC:$_6/]R//(90%(T).)_)G
M(OZ\GGS?<Q$C+H3GL[,C_L3G.4M #CU<2\%636]WT!P(2(PXSR$;.A2ONO."
MG><!@3@*$0WET!Q*YE!&KA\3V]T)/U #"8X\.I#+'!0*)03/ P+\:N1@@;);
M>CP(S<M*,_A8^ 4V5^D5LN@9P=21HR>0 GNW@DAD'*XV <U_%("%7I\P@/LB
MW+8R^H.85R$(^,V3+HAS>N&PZQ+-I_WE?))+G^ZNZF,R8+%ZFE>)='+ )C6
MD\MVJ]K<CQ:N-(I[0B#I !$) M^T)0<8NZZ%_5EL*=< +AOM$P<I5C3MO*##
MLS)*!=V?UI9,(94:'IID4VZ'E'WQ"&,[(J*5\; F(55P;2U"VYGC5X65[/_X
M)<-S[-!TBIC$05P2*.$!_PC&.J&H<+X[7CKQ".=%'!N<51(490\)2_><Z%"W
M(2M;9O38P*0(&>-?PK]#R?3L/8QJQ/^3^-<D^E.@ICC;&VYH1D/5).$**^#
M06(T2 (6/&_5\ @/+BQVDFKA."D:!Q4;40NF#=^R_2/X=\*$\[03<#N2HN!
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
M+$K)?D=A\T6^DF3K[E-F=2559U1L*F:]8*ZTP<::3$1'+(S\-H1C"L'QG Z
M&(XQ'"_K&G@3D+U9$DPSTUQ-JW8ZQF"I#4I9^TIN@)Q)Z[,^B7LLT2FD"4S
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
MK+$>"9/H$;2&)_ !\)LHWL!D\' D?FS+B8!IO2 :RH<'L/9V9M$N%7&HI7?
MDUBK""KX(MQ\4'OD,(.D%]0X' )N9;3>N)1+(;;;EB4VW2O+*1KK.<0%*QWQ
M8<V/WZ</2A4E@]4>"\V!50H>)Q7UH>>!/\+*K]#G(YL;OT\BO\MSPV;:?$@3
M)54;J$J'BT]IK@-_*[_"0EORY#3'-O[PJJ93C*NQ)='\#9.%;HN0Y:;(KZ,8
M#[-X TF)<AME^[44CUM\>9@[2Q0CH+=,[ 0OP--[)=;XV]%\Q^X]!ZI4?4[G
MFQZ>E]6P<?<XV=\E-4+OA5W20T%@:E?3\RF+7)@-1I\D\\W6..VETFVM6,QT
MYTIP3P]&!L19:)C=4]VWL3KUOY<&VT(9OGGS>U'@2S5\?%<2.U.<MG*6)M]Q
MNEQ$D]_3+K_:Z_)D7ZYULX&=SC>P-"R,! _[K][A\<I1G]7&\V+\?L.M 2M/
M#FXZ$\6N/V7\[JB?C%LCG6_PCTRR^NV'ZY!]P0&J_ AQZDUYJ+DN+)43A8[?
MP"=I(&9 ?8#57!MN>@H/C,W4]AG7D8;S;!=9#[U9)9MZ'#V"4/XQ<#VRRRU@
M1D44HRCQ*,W =^E9>B\VP+.81HT:L.:LY6$R$GUISQ!JDS6;T3^M7OGI>T0=
M@].S^M8R[O6S#_@FL#-X3V!K>?#4=<#EF:UC45$L%URJ"8CQG]W3+A8]+L)$
M(8QZ_4?H"-ZA/HP/](W<&X\L8KL'_9^?V04;HWK1#=KP<MXD4UYR6 [(#(KI
MWS*]:ZN1K^4(L\$+4SN=*]X/.ZUF&R?X='K4T9IJE(4N[;'"PF %LAWV[]X^
MX9==C^-/N$B>GNIFV&@TDU*39%S#G#[UJS1B([Q]PNAJ&R1  CR['KV=8GG
M=)FK3\?#2/]$0+5I" 36"AIM;/=$,6-KO8D=!<"ICQ6%;:(_3GI@6*R.2SIN
MS*6I23%MN<,=6YPR!DG1LX:WL7MW0L;TE"1(@I5$B+)300KZFR.+1:?>H\1
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
MF='FP4VD,>B-PGI 5=#R(3#_2BLMM)&_K86@-Z\[HQQHP7"=@!X3 9M0MP
M6FC9U)KU?QX7V0+!]AT /VT5VW9U3 =!T?JNG/RR@6E8_M#&L^^6 _,F<0V&
MT-]B?/K.PFB/( "O+^S.U$+GOF %LFB!:,![=(#&)M&\>L3R-F4(;4Q!<=@
M\']: '2-(G.1_F#Y?A@I]Y6D273I"M3(T/6"V+]65F&BMD7:R6JX[XVJA*^6
MS0V]LU08ZAH"B3#HN1[8\"689V)J^1M-%C)S.9&EQ 2B%2/1H1:%1!AOJTVM
MSTXY9HP;64/H3_[>FDC_7(*"A1<.!LPE=(R$\1SZ 2Q'0-58G02!3>AO;2OH
MP8M P_5L#D)TG)5*ZE,G"-+B(S\<I\</G5('3 [Y=O_ZDDUEYD5?7P#,![$8
MZ;+;6#W4?#(*80#V;,%1#RXHIU@2T&8% 2%4%<"X\![('I*-]?)3DY-,(EL3
M_C^D(GC!C=N?W=%(%R.MSVG>I,@A\^8G7_C[C/&2]$Y8@R*7TEK59C;UE*]4
MU,)$G4TH:[QBYRRE-UV5E2BUG%=,S9,(3=VU7>_[?R$D(1W]<U(?_0B2''QY
ML%K <"SK@4L-EH7X_NG$ORZ<Q<BZD58B6@;, ']Y,+M?^FT>A;8?+'Q\"D2?
MBH+C63UH,Y:.UK'TE31>>U5)8-<93&\"GXGD-5@TZLK32CA@NHR)[0XI_Z_?
M@<=4KZ^X="G -[I>> -;XA^>/D*?E(C+]O4DSONE6?PNC=W*\ZR(-*6DO8O
M/Q@(W(1GUU""RJS[0/IAU5*"O((>DD5P0Y3;_1#@"IXW7W*QI&7[QUZE-DRT
M[!ZRVL_SQ(,=E^QA]22+I1?3H\=DK3M'[70E2VRKZ,W:$[I8PLNRE"+T*ZZ7
MO&R?[B2JHBWFG]*#P7CB%A-/G7OU-."RO(?[C*Y6<\UD?I#(C=UXXG[8_?:#
M85ZQBVZH*3)<>+CV+(JB?('UH]TMU\ZGDK'A;BRAD$)!=_Q\QZ7!6C;&*%4K
M->Y.LX1W_?R(4SL#!['5^GWHXDKH:F#9<LQKWN?:M/57V@XT*34=?T9I7@[,
MG%D9OG517*53:DNY1-ALW\_NYL4[-ROT_EP.'BW0=L>-<(IG2H-FF;MG&]-1
MPVJV:/A ?D7%O3$ZMG1DJ;^[X=\N,'O \EF&LX @,'2PJ7X5UXJ,K=<#3"PZ
MC?'[T<W=C+L*!D!G=+W\T!N3V6H%]_8GMCW3U3H<,GSI8M'U\9>>:K+QT]GT
M0[VWE@3@P=AT41^P$V)O1A>/!5\7W$NR? -8@@H)  *QZ.O8I*$5VNL=MFGA
MYEB]1T!\&-#-S4L\0WMPW !>-I?!K5\S$7,;NW<G(,*]7SK EK,,HWE^L!/]
M86,30 \(LN-ZR(O("[>47:S:E+JC3&U$M/X@Q=;[CM@5R^,_=XE7OF_.>4DD
M@2S"ONM@S9Z!Z/%I-87#(?[GQK,Z;A<::#:P%#7!WK?&E;=*GK?ZOK&A'?H+
M_IE:5++81X\@ \U!>_Q< -^+^@RBT$!=)P[X@6ZD0**_+!]D7)@!]H.E^A@_
M#^X+SVG'3!,I@Q)^L=.8\[^OTQ=19^!!T+$+O5YV-J+0$?)*Y+!N'TA>,3&[
M*SSW1=$K5=E$WGD$L^('\]K>*+"Z Q"TEM]<@<-U-B)+)PI(+!K2G[]; ;8M
M??'JA- TE^^::QMOC5+0V>I1('Y1*1Z>&-;XQW_@GW7TPP;Q05,\>O^LA'"4
M';$<WRK!AY5N.8&.&A[U%@.)!/$RU0FA_Z:SV.AWJ[.X3FS[G]>2SU<]O'MN
M$' IK.B*VBR_<?AX07J)79 J(LS&O__[?VU.Y^<A@/@Z7A2E.6W0;TD7-LJ
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
MG@%. D5"=&I9@=6F"T35=0E4+@%D[4A%^@V>E4T,VIG"3D$@1SE>@$'*B!/
M"!*4'<M6([(&)@Q6)5T!7A/ 6-4T$,2&(B"1@ @S]1V_023(T$GDC!"PM#!
M$*0K&'T2@WG6$#50.3OZ4=8$@0-S4S<9>$,$6FG4%<":9DJ\H8L&YG=&!4P#
MQ%)4D^/!XC) 9<L2J&PBFP+/:;JFBSO^CXA,3494-G(&?(-78.8"1BKH985G
M&(F7F%WYQX)GP FT]!D!>YL%JF%6Y*F)CUB98 7O"]?2(#GGYD6[DDZZ5O?Q
M7M"U#JWJL6<3RRS'8TD -F%@Y3@1?!(&8(B1+"-30@PK[?%UM?>@RZ/VTRR=
M%+C[>E8M(/XAL6=O0\LP/6L_<9AO-0?W>MESBSY30M0RW^$XZD^ :R2H8 @S
MU&X%KI9D1I5!G2@R)\F<H.V-8JJ9,MBJV71>27-.RG_J&L.$>@"'I#7W^7;:
MD=/)FCNO5MND+C:JAVSX7$]Z L__?M 72P^&,O6"0EGM[MOPDF;RH@AN'XN
M.W@ I2H;5+>8C(@4@V<,LJV1P"_CE0@2"K/0!!135+^S $!.)[H@;:L9<'L,
MB2H@$.<:Z&LP!%6,00:" VMR!/0) &[/QFSBIN#,9TW4SC-Z/J4GYO5X=\]/
M@)9^+176ZX-2J3_*9HWPOE4Q"ODJM-RC2;LIR D__\#WK933$FQ?S@V&M,\=
MFHBF:8 M 5P@4 \:FR #L$P (:RB2_ GAMWQN1D6=!(8NRH1#3!)&0QL!WP.
M &>( C($UG?';M00T8$0$OAM"&0 CRBB-4[5#0&L9?!BV;6_L!,&7,Q&4PNU
MSI/9<@P7E>5LH3Z9Z2WML:K2INPB4@QO$",1_*HU]VYQH.U(EKR3MQV/GAQ*
MW%[M"OUF'/7;CQ0QB><1@^8=QA*^3P(_]J]5&J5%_']OQE.WSHN]RW'][3V*
MNMXC1FB3LKD:%DTXC0:5<(R-4441K09\_([NE'U;+:@4S^G=7%A*H(%?4-.<
M4M6>Z=XM\74\A.\$7DC>-\CZMH3ZNM5U+-/2\2*U>N@Z- JWVG4U5DM ]S_P
M8@GH-MS6<_OGY&/17III+[;!EA%Z;;F3YM.=-&CB$=K,C+8'846C[2TW]*%?
M_]_?H\6,(M/K^.[B.*L.[?'0)]]7/VQ.FLYQ&0JE04%]$4Q<!<HCCL5AX*X>
M+ *OT9,MKMYD\T6;GYN;HA3=P?*-WMNR&MKRD\R"P=]XEXM\JYSZ+I<#V(L:
MPA]/<MZ:O>7/>GOQ&:;,W KL5YLR<\M^M3E?.?M+3/D+<C:Z%<]ZJ\^?3_EW
M+U>['(5,3>@_3BCX)'+L/6@ )B)]^/^^"=_^E![2K7)<@JP=J$/)$,N/:%L?
MV?:.:(IH+!WEEOWG?[0/@7AYCP5>F^#J?E'M"NTKM-\?VF>\7/9OH;^52WH%
M_Q7\9P3_GRSK_K][3+R&.?NG,&?86TGXT#"GT<EW0O>5#3XT&Z"KD']=R)_[
M(O#4?IR<BG*&?8_[\1?@/?<4SW%+)PTT?<%Y+Z)-7V_B5T;_8O/^JHR^T,,?
M=MZ7[HCMUC!,Z#HM9;DZYAEM+D<W%-$=Z&AKFIZY7)X8MEU0W^]1X^+<<9?/
MNAGT'A=EGVA#YWP782].[&YDN70'957UXH;0'(4,RCQ8S6GZ^<_OL=]+@H$?
M5L^6=SS0JRJ\,:'I,0! +X2/)%: R[A>R@VUP SM%3@/7)J-!V%M6!&>1J@^
M[S)U;F+.!RH]R,%]^\'<R,>J+'2%[16VEP%;I&;SO8'O,04!C8S^-',7>FI>
MZ5XV; ,VG9 >'W6U.2*)N-4:.GD&50&VXK<?[ TC'Z4(S;FWJX]O/UU46>AZ
MX.K]N!9=.*%O%!&_>H$?W M\MZJ.YW/N+D9\G\/J2FZ $43XZ@:5>@][Y(["
M=;-!TO4/%2MAQ 93X0I!K5E6 M6=\*F$HDU4D=I=W VG[%_#=87]%?97V)_1
M:GL/V,<37+\0N-U</^Z"?A\_=MFL40781W:;I!REWM@U%';J4)A'[W3?.K.Q
MO)??N<:]+MF!?F\1_67D\84$OPY(W/&H%C[:<U1'Y=I,YQY%]NG^N:I*D:$E
MWK#"_B7#5X!> ?K9 'HA8:X# )TS; F[5=?NXYQ[YTQG$CO0*$#!).*4&TD\
MHDWT,0#Z"6)9!7KWZ*9%=/5F/[@W^Y52&2Y&BK^;F44OF-V3X!%(US64#HCJ
MZI.:K*N-7*=?-PL/:;4MY=+3JBI36XJ5;A2>OT:MKCB_XOQRK+4_PSFJN*.P
M/YKSS7:A$R^WJ^Q(;-#["6F4B@63["A9 =<PU4E-LA():-53>G&+TXU2LF+Z
M1CF4:YCJZ@5_.KEZ_#!5>86H @!JL[S0(=?7[P7]DAT4ZFDB/(F5IB/8-9'>
MU4J3K] -)^W74[JB\HK*SX;*X\>F?@N5I7S*251[_4QZ0 R<X&<IY]&EJ 3K
MAV%O&':_X/PU(/71 E(Y!YBV:T5IZA&+7!W5JZ-Z=50OSZ#*NJY!"W E'.,G
M9A=_.B"[9XPQ*,M<O8_8 *6'(, '=U)T[7R45R4+1]E,N +_B\W[(P#__0Y'
M7P,S)S5-RD&/>%<_[[=$T/FNGCA!GN>9)_>%C(T(>@?,BL>Z8Z,D3J>:^?B@
MHF?R[9:3Z=*",V!62,+UD-P5OE?X7D"8YP7X=GRDV=-RMY(6[80FIY^RM7*W
M2N$K?OOQ_]E[T][$E751^/N1[G] ?>YYM;<4V![PU.O<EIBG$.9 \L7R4 9C
M8X,'IE__5I5M,$/221I"Z" M]4I(85<]\U3/P][B.5<=S^'Q"SJ^[-F>9-Z\
MN2OWYFZW9*[)8"HYMGLL#I-.]K+<C)OXA1F[ZKG586O2!WB('C28^/1=FCF+
MT+VQ[HUU_P[6/;^Q]!+KEJ:/PIB9/:F&OUCPA>Q#S<EW%FAGT%CBB3N*)6[5
M/U<<9 KLI4?)#*=A;3HTW2I^;D[K%3BM2/;^Z]KMI@W[;?J^')'$G#1(-]+V
M=&CTA699GJXG5%);H&'!T(A*<X<7U_Y]X^ ;!]\X^%/,IS=Q,%%Y\IZ&W'W:
M*$FNJ0WKCECL8 Z&MA1#'EZ7. 4'WR)/GVI)=5'8Z=@4QYL_>WI_]M)2[=)P
M>=$QOC1@OHSC?'[;[0$<Z^SBD$PG5^97U9Y>OF=8WGIHN8\MD4SCB!=])_"W
MEDXW"7&3$)>7$.>W#8]+"*I:H O&Q&*(7*/.Y,E)R1#6&20AH#'("7=<^HQ=
M.Z]60GSUP-H_>Y-)8CT.3CV>Y#H0=DU7=BXFG__R4][H]:\YY+>@UUO(Y%,K
MG)L.NGCNK8*VB#-?GTZ Y=V\H5O^_POG_Z\\[W2_M4LC]FN:DN5E++40<> 1
MIV5"-UJCAE]X[$T*8-2N%1_']WWHM.!&U21SQ]#G"6+?./G&R5?,R>>,,7R0
MDVE;,<OM6?JYD!MES,Y3=FG6&,S)Z%X[?<=SAR5YITM'79JB_]KXP_%.BYCD
MD[:6]-WP@OO-J[MY=5^HP\C?8TTAAH.0RSB.9 T!$KY'YZP9;$^JLJU*KR/-
MK:E>]JS)XU DN:AW(G$KY[GQ[+?GV4^RF][&L]DV13P5*(4R],YT0DAZIC/P
M6XAGPSZ(Y'EX]A:-^ER+R;:&20\X$TR8")&WTIV; _O-'=AS=9J."V'(=UW(
M=KF(ZXZ50*^?6SW9M_.]627W^%1L5)NC)!3!N.6TP-YB3S?6O;'N)S6/?B?K
M%C4G2;>\OEM(+AS>,JN2NE(PZZ)+]\1A:]-;L.GJ@DWGZZ)X'?BZ>:Q?VV,]
M7T^T&Y7^-8>\.)5>DTWP>ESEE6:=;VC>F;R?-M./7</NL;EU7G6*9:F7'HHD
M[KQ,I0_KYV_!EJL+MD04<G/3;F[:]W;3/BD]]8I(COYTK.RGKU<GU14G]/H=
MF<_)EN&WR0S<-B[[X>YHZK"1\BWT<N/I;\[3ES>S7N'II56Z3S=J!M]+MG6[
MGY$,:N!BGD8%0.0=>]9TUJ5I^]O$9&[MHV^-0&Z-0#[9RGJI\ZS3Y-KCYQ4
MQJ15X%W/MA]*Q85(X<;1Y!TA'+:.OE7]W'CWQKN?:$V]Q+O<2&';V5&O;"0K
M4O%>$JR',=="O(O"47<L=7A=^Q:0NJ* U(OM>VYCZK]/AXY/<'DO?=Z_U "K
M6(H] ;NB_(@4]]WR?=HIFG:A7ZV9C<G(3DM=:('A3M0L=<=3Y\DKW-C^B['!
MC>W_"MOMC6R_;MVWR57#Z1&=5KO"TG6^D*.&B.UQY\4[EC]G\\6K9?OK"78%
MUAL:8G_.UHO7@;63NM TE%2J[:.:KHN(YO][+O?Y @?[,CW/SM\5,2:.C[<_
MZ]"9VJCXY%=[H&K)F1PM-ED'2F3<S9HB[\CSS!6X\?&-C_\>/CY_[\+?\O%C
M=I[NKS)5I=>XE]?]@E49L^P"\3$*B_%W!'N61J=7%Q;[CR=!$OT5P>+!G\ W
M*B>E2-V"^_!^TNRAC822@8DCQX@]!O[QC8?:.<$.>>9]!S=!%TDQU#-=.ZYU
MIHM.F>($?MKKV!.B+7?4FF*VXA<,.LH(J+X)&EI6,E$;]<X( *_I !<>#3^[
MH1T0:<928W3:18#NPBUE35LQ0D*51;NZR/8?JW*12,KRXZ/7'\_FSYD?"0!)
M>@K?[CD^.*V$>!L^NB-PS&;%S;!BH<>$ S03*!Y<),GV'"0D!R1T2S%]%7ZD
M6PD//B=G6]BKE-"R$( )#$'X/!>* =2<WDW\"R^W?1>^P_WW3XQ43)[1V4,)
MJ\#UTM0%/Z,?XL=$IQH!)/Y^3J1E$I.!%1TT:0+-^RGYGAU]@ 5E\$G(JL&:
M&.^&:] G 9.GJ10/_8D?R >)MA:^D@QH^6U^"9-.\1?5^A]BLS\3D/3W.S*T
M[;[9B4DFQ3/?[,PWPOX&)_Z.A$VD!/8ZC_S.,.$74L<H;(A_6P1FA6R;ZG<3
M8Z>  300T8?_[P?SXX/P2!,IFKEHB0N_Z]DKT)H%SAX$Y9V7Q &&^KXK8"(#
M)T&3=XG__8]\%3*!/R"2UXX8Y<GD&_-_;>;_"%H/_ST@X@V;4Q]E<Y)/4=?-
MYBB0<2+NOI'!59,!<1/RKPOY2^>]\V=)!=-?XFP7F>)Q^6.?)(T4.)=?ZSK:
M7Y( WM3CO#;Z2G!HOL@+QMAH+/31(K.@!IEI1@Q2O]31YJ<WOKWQ[8UO/Z&.
M[M6AED]5K;U\K"][@&^,<T^23IH>XEN4ZA7NTL3A+?"3F4>7)N#/JJ&[A'_\
MTL2Z:W!QOHR$O59Q^FUDYZ=>/3@N0,UGEA1866\2N4[AON]P7%U0,V(ZN/[)
MI<]H]]Q8\,:"%V?!3[T&<)P%;:<U&$^?.D6B9BKF>,5DV.Y@*.*IN^0=31\V
M(KV&",^M6NW%0WWZEC-NPM82.]D@I'WN$@N0&$EJXO]^ 37'_$E-:&,*4)F?
M-;RW73<G.<X*/FL!M^SF(1.ZD#$V?,<&?/< %XGLD!Z4JLE.Q:@-Y21CK0H]
MJ9#Y\8M+'5:()B"63 0;",ECQ7$.,'&-FV>?'YPA',2MB^1[(]N!=)=9ZN[F
MS]'9<]!'\9Q5'6-??)C7O?FJ72 ,?2[WF+7H*-+RX[AX&?1'0=XFF*2N##-F
MH:8.M.)#\8E61HL?O^CT;V"N 16^R$Q8P$O8T3L3)GQIXE^(QRCBGX?&/?Z)
M_.??"26^$U1I*$$,N;[IH6>APL1NII.0E)D/61:]*Y6H: G+]A*^"]2[A.LK
MH[UGH*9%"1D,4:6BG0#+J8[+'2$GT60JT0<)"#O[;V<GN'</H.)66Y',HPA>
MSM?C:G+56AMZ9:US<[4R$_I#B."_@Z=V %#U'=U5=;RAD+LHN:-3%8.CC,ED
M,)SG#7705!>?Q5WF:"EZ@V=U59#H\KA'34VITH#<Q9*IP]EY<>B[Z%@)R$"[
M1'\7UO,B5MOC*,0Z"%V:8T\0,Z42J&SXA><$S+/EF;GDK- SI0D232YD*V\!
M0% QO *2XR+]1.&"8XI(0_8ZE]Z$1OJNYF12 A,J4!KKSJ;ON+YD>8@(.R"@
M/9JG(C&2LU5PE_ ]J/77N!@<_<'VG8V\.H2%[D+Q(H_AL] S)<ORX3)3G^A!
M-;F;4'V _H(>;R\LX+@C?9I01F@2$ (>!G;%2@R!A=YP!Q]QL.X.B3S(4KH%
M422OXCN_"P6A&Z#.<R3+#2C"1=AV@LE#>V^'AU*@@2GIR/*Q%6-DF_!XT*QP
M$E-?-G4E@2)A4S<J^\:+T+<DR'7.U Z*\-%.)C8D 0]N,L$0"4C=*,TIP8--
M;1U1@@WM6/@E;^0 D$2D@-;HM@HE[$@W ;)8(!F%L--\TUR%P ?XO2]#_8!@
M(=%IP5[ ZB6Y?@<IU?2#O4NH4AV5KT-J!G") Q24*U83TA""Q?4V (*GUN%)
M7F %K"I4&^L:&9@ZF,.W>8@H$&22IFX <Y5$ $JB)? '#^\6<]!(@JM=7]-T
M18=P@WN8 \L'R8 4L$8,=6. 3513[X9<N<&-YGN^ U*78ZE#"SIZ<<;1)1.^
MI@S,.4#N#'HEI,]D^-YX*?_6OXA5Z7]5"_SQ&!E!0CFU6OO==9<3:;F&,Z -
MONY(1*=N+UIDODYR0N;#6FX#G4P$G'V3)(>E6L7*8(5QW/#0F_:CR3Y(Q&J6
M;/6J?J&2$:$Q3Z0.+])O5!]F*!FIGM?8V7M9LP5J[YM:)P>&8SS $<>-53:?
M3/FYR1-L>Y:<@&I=>[*@74*E#MO+_<XHA+M[V5S!WH%V5&K?1?>57*R?(;BA
M9>.B-5C&OBJ#032D=N,&P(=)2.M [2I!CR'A3^&# LV$= P6L0FHOBPHD['D
MC9$3>CVT %Q=U25'!^[91#&['X+IHWT/?5-RD-Z<HEM9>#?H;*Z+Q@Q&Y!X<
M+XA<K:)-'T$'LA 34PG%GM!C[T*-$[/<7V2<#%P%P835[M2Q-6C_A*]#8-J#
M$82[-WI!&]N^J4;>'?PJ\O1,/&0X""%!^D*\I5O!5^$GJC[_];_PGPCB"ESN
MH)#9Z!]5=Z'1O/J)HTV1?@FKP2@N13,(I/"C\-(7!G$8.24(?#$L]MR=AR45
M8)K_O)9HBYYP\A#K;BD9E8ZUJ0CH@J,#4&' Q/[]/_\5/\XVX8GNX=G.SZ@H
M+@:_$"X4CB@.05*&A&0D)0V^_Z=D+J25&QZ6$U)T5&[W<U-71V.]B0NO$[&?
M$50.L(;N^,4 MW.'+_S:[C6^Z$,[</E_8B+5YV /:R'2/7OZDR)3["["H3/"
M,0<X/TL7$7J+G_^5$M @AHKAO[NV<C0$B7Z&8A0*;G.G@CC\Z,<O? <5,7(N
MN!;I;NPAZ5<,^<>Y8A_4QR H87$ORA3!D1PCB33'JF(ZG19$@614D=4X@1?2
M9%IE^!_!6\-O2*0B,1S-B S-<6*:D( H U(6*9K7*(E5>8V3=[^AR Q/0XM#
ME "IB&F23<.?>$:D904(!"T#6F9WOT%")2JI:4[D*(D0TT"014F"7^-D528I
MGJ49A=[]!MPG*RD\?+P,OY96*584.($069E1M#1%P;\S>^_06(F5"$W4>(*!
M[Z 5D0<"@"]2!9GDI;2BJ/OO(&12DC61)B0*P8H495J&6Z-)FE()DB1I9?<;
M:AJD.4 "D4G+)(05#T^N";3($VF-8S0@<=+^R0$II%F("H%)TV):(5FXF(#?
ME=(JR:JJ1/'2WC=XE@&4)HB4!M"N)+@K3D[#?PB9D1F*8U2P^PV-8RF5AWMA
M917B7-,H498I3>2YM, 1E,)I,K'[#8(#:8$D>1$B ;Y#4TE1HF1)5#F)% A>
MXY7]76FL#!].,2(G: CG0(6P@L3%R1K:)ZVFB5U\=!51R]TO9^6NV>WY=GL]
M=6NBKYE#9!GOX4& -*MIA$BI"MP-SU*B($#TT8(B*ZJB0K.%VG]V+ETM@+H_
M>3(:3+,Q6Q<;&O4P%*G]9T/:U^"1&%&&E RA25$0+#1\"PT Q;!I@1;H_6?3
M<F_0X]UYGEA-1>?1[3_FY2JJ:CG8Q<S,&O?9I30A:O4Q.WOFA.JSUX(K#V Q
M2Z[8>KG"J@5?]$>ZD&ZT)S1:N<>-/ N!KT " 3S-BFE6(42)D5F1XVB5TB2>
M(+GT'F94 9X1&JDJEX;?(&6(?4CM$&,@G08L ?A]WH)<Q\FD)HE I2!O,1(-
M>4N"#*8HI I%@4PR>]\@*(ZC@"*+6AJR2T#W0$B+@BP)#,'P:882]D_<KXQ]
MKDC/_5YNN6SU>L/.Q-=07HW87^ED[TO2M*<\%&:,=J^T:K[&$"VX\@#>@C=(
MEOO]1]>HM4?IACG+U9<B2I<?P!N,_:7Q0+=F1*G/%3USTNZ8,_3V?>G'\2Q0
MH"SC"0[2AP8E)V0T%<*;9WCX Y#E@_T.%UZ&Z>0\L==0YX-">5#M2+F6R!R>
M;#+IS(I2IY8F)M6%EJD2?I?C%W EN[^2>E)'7.>![10:KE^R&OE9,[<>PI7"
M'K9)C>1X%=(BK4 ^A&)'Y%6(0$ZC)2@5"8F0#NBY-&O6\S6+IPS?)<%L7.VO
MG>>6R.[M5R0Y" T5L**L0.)(R[PF"BS!BA0CD4@1J)!G]I_]7#3+]D.U3A4:
M.2,SZJPS):([%+DCL"@02[*QR*L]-MDVR\S$>9JMT,J#_2:-OE.=+5:6D5NP
ME&4_:$)_@%;NR5:6XA2-@ZJ*)AD92O,TDF>R(DII("L$3:4E1=M_=D^@BI6"
M(/F%4F^X%LSILNRY+9'?AX4JT("3('N0:5: ? B9$;(,$#E2@9]0JD;P!S2G
MSH?^,]M7J\:*[5/]#@5]0WLA"H>P*-6;%)NKSE8]4%LH7M'NN'D6K3R@^&6V
MQ//4_2C?R]E.>[KR%_W'80NN/'A[C<_4S1:@TKW:*B_:-#4>ET6T<H_BT[3&
MTPQ4W!0A(WD!(, 45A,Y18:Z51(H"+O=;T 9R0F @'8!BW28+ OP)P W2R*U
MIZ0%0))[[V!8EI-9662 EH9<Q7.0JQ2HFP2*A5J<)F1I3X=)#)V6- "I@8=^
M=QKB4914C1%)E60(J,$$J+'V):5"40!*(IY.0YLB#=\A" HT2E0"R!*-"'E/
MA]&T+,&S$R(!)$@OO"(AFP*J30%:.H!6&9K<T_<, YE*A2I2H!2L6661YSD@
M*K1*\Y)*$BS8>P>0:4H@H8ID>,A(:9JE(4U"?0,$*&<@A4(ANF>W<(3&\R2T
MNGB>A5Q'03'$J]",@<8:A2P@),?W=I5F"552&+@.[CZ=)B ,6(@4@4WSD(,)
M!MJ N]^059I4 800(R"+#0E[6>8A9U."S$-]3Y%T1"5[[EK4+.6^/7C6'BW5
M)AI\Z;ZS6"F/\E-+1$OI<UG@L0 >#F5/;2<*\2,?^:@W&IC$*(!N;YQH\V@_
M%>0!N[Z+H@+P\R#,C1Z]ZPLKV+M5)!^%(&)9 .0@CWUU&#GMDK6"[YO AZ&7
M'WU=10M"'3A\#;=G*XJ//79@A>&/(/(1K=IXUM!I15%D>P)0P!\>=ALEB%YX
M#!:GC&OL>G?\7J0C2?(O8 \[Z"][3!#.IJX<WKG\\2M6MH-#3CTKBN!T(4B;
MH0?D?D87HBC<MNU$U+-0N')HH0 4W$X66 "2C-NV3;,8Q%=>:#G$"^12G2^8
MF=&P6P.A.FARD^[B\BV',CC^:BD0XE*<Q7!>!A,8R@4"2]UF#=$2/P8'3.IR
M"(F[!%A&B4M)4>"I4$<B#Q*^Z^%'38$EF0BY=XCNK[ 3$<>ER/0).A&Q5.I*
M>SS\064F27^S(Y,I^KL=F4_Q%^W'=R/L&V'?"/M&V#?"OA'V*V7XS)5B^;V-
M^+^,F7FY'CM?1XJ=M,$6_]&6*W0ZQ5%G;S/R)RU5GE !8L%"94$GZZQR9H;_
M],XJ-\Z^<?8+G'W%S93.TSKOQOM?F>Z_*.]_W99I! Y!7C&7G[!SWHT,KIH,
M3M4Y[T8&UTP&I'!3]:^J^DOW/(HFB$A>+#5H:_C2X,FX]]*'O,1X+OH+G/L4
M_4N"&.*M(=L).YJ\4&QPI).)UC86PHA0F$*-NI?&E0KG@%8K:"9$\7<<<SB0
M_L:T-Z:],2TIB(H\[.;S,W=1J UMTTGVAHTZ^ RF';<DQV^-/*^7!)WQLSPD
MV60V$[8?(NY(X2S]AVY,>V/::V=:7EQ+XPY5D:UE(<>SY4PZQRR\S&<P;4W1
MF].I5B@6V.[3;-:GM)RIH-L% M2T=P)[%D4;.#67IMU/&QW^^;'-#'Q!T+HA
MN%2,[B9+RT1TW6ZG(8[B.PXJ_3VIYW,=B+RFFHK(\[Z2XHC+R=:/EDB?5M16
M@@8XP&WCZ^00OD7'GN0"7FOB$GVX>E/]?40R5YZ-=,-,6PK1GS,9)2\2HW0C
M(S+8!R(.NS#=>/?&NY_.NP@[)'6*H]UH[T9[EZ*]2Q?/G=WXO+2I_1Y[= IU
MHQ,T[[N%!ZX\/'!BX?.M8@1?V8YM(AY]DQ6;;#3Y>JO:+/<F IML5Y_OTX/\
M4&21%9OF;Q'!&\O?6/Y%EB=V6)X0W<HB2TM%KV4T2&GF<A.VO&Q\.9:O-76N
MP*]:U5YG)(UF:E>8CEL+R/)HE!)[QS.'K?IN7'_C^AO7!UQ/"G&NA[_Q]7QY
M7ANJD\**5C.,5%IGZ7[FJW%]QQ>K0D-LK8V5EAO[M3919(NH-8_PXQ=WET:-
M 6^)A*M+)+2!ZH<MO5'OBD]UVJX#A[=8T%<0R;<XY(WV;K1WH[V_G?80O?WK
MK[0_\^#/[,]EHUK)65/9[4EMI[<F7'&4IS(BAPM9TL2!]?GO6][@Z^<-]LQ/
M%WB>"5"CNK"-.VY*%PXP.,U0WUL88>_<%[R&<XDPPZ6/^W:[8X=&DBY0DOHR
M&1#(SS+^GS@#H"_61VO1J#%F7WS@O33K+O:_^T?[#7Y%#WJU:?S62 H)]K27
M9F_\^F4(^,:OGVBK72A#<-Q6ZVRU<Q\J9[@>_B&SU<Y'C+;57%.6BWOKWN@/
MLX-L-DV.%&TA\BA5P-_1!'D6L^TF,[X8$]UDQL=U_).[*HW&W72[Y]_K]#WP
M7"8S&_Y5.OX6Y?^\R]# 4D]^#?HZT/2G8G5'J-!0J*BVC[H]7T2(GO!>UJ7/
M]55N:;UM7/9Y;FDU"#$SSHSR3&_B+;UQOO905J=HR@:Z"R#<I9G#D=@W[KUQ
M[Q<XUY?AW@MV,YB6_339I@2^1Y59<Y+Q^Y5I=@BYESU_-X,;]]ZX]_JY]Y)M
M#495?=3K];1G8]+LMY*C^WJC5,Q [A7.V=;@ZE)+_\&S37Y%L B'UYQ_GM+.
MKJ,YN;IEZA9(RFADS<[T&/2=L+-H.,\G/,R!L_S>7M;7<<X,'A:_TY,46;;X
M7P+/LT',=H=F-HTD]?SCR-]@4;]GCOCON#H^2CP'2*%+5JOCGM^N45(7#-O,
M=(CLZ13SXBSQNW.#Y$UFRKE (OO)=GZ:K)9ZC;;?7;F/A%P<(9#PKXU71U1S
M7JB\3?R?"RJ=7H,CZ]2T930:&<LOU\9MU1PBX9\Z=+N"Z.6&6AS@HDGN^AR8
MJ[O?#)J"ND 9)70M$5NA6]$(^&"L&UJ&9ZGI$Z@S/#R\#6A:\ K\/$?R@)M*
M]!$#PX^^'%Y0%!/A9@%M&Q=8;Z].MB< E8!$X[8REEH)YW!E@KE<1Y'G3%:U
M= ?, 3$I,9GN0]:MY\G6CU]?CHL_&2Y"0>,Z#]D\U=/+];I87=1ZM#@\-UP^
M(/ _&2[$P_- &M",W.LT2;K3UM<5+0/IQ;*/6'F_^\#;C(Q#0Q6#:7-!)<O4
M1G/<=,E\89A<O+8:C:][46R@B7-OT.A8(&P>\:[7O_SJ<'CDU+&1C02)!9U,
MQY!'"Y$8.J%I](XA@/"L$A29KB^/H63$,)26X1!0"\,343,\#J1G*"WQV><2
ME*^^"[<*/TJ,?4=W53VH/4HEBJCV'7X-A<51B!Q^=1_BQ!T&QLO0PL,R'530
M!/\BKTZN,D^0&CZ!!OW#U'"<%2NLYDEJ:5$FP&29=Z!N&52ZF1^_^-3A79*-
M,:+Z>"*IE-"DN>T$XQ8W+P^+QB B*^U.<*$!_@SY(QTQ"H-QAN\QI!(O&LN+
M:&!IPH8L@]Z'G@>6D+*M@,QBS^8VCT2?HI&:IQQG^@ZNP,0>XT]X!FA96"[F
ME2'$GR.9YBK.-?LGDF+#9;V1 S"H-43V&&()28/")*%!9PF-K<5C7?$;4HFR
MO4##7_&,V)#%(@LFF#BK 16]/R'YJ@Z%D3KV72\H](.8^0]Z-_Q-#3X)8.^^
MM%/(6SO,'$A<?XHGU5HA$X=;Q;G+A&5[N@:=<_SU4.(&7WV="+9 VR.'U[:S
M7[3X&UJYG A=0)8*C$@ID%O1/-7S&/MT**DHL<<-9\7V#,C&)$]U#(L=LHWY
MQVW]2"15K)>,!2BL)->VH+18-6T7NOLF."J1C';^J9C/]H=&37:>I)8Q'U>@
M"/V-?Z1;K^M0A'M-=Z .GOF2@\@2PA@!XH/"C+T+2"D4:?R.2$.LYCMPI;/%
MZ4:3O^*<A%O!>PT<DG#I=LBN[8)]CP:[*A+V3UYV58) TMZT[LW [[)I,#1+
MD@Q/[XUFC_["4GPT5OS<@Y-S]@1RN(N?! W*PF1JVBL 0D)JFI+E'HY*;N;;
MXV9^_%CL]9^2CQ.&* S[PV'  O"X0,UXKZS#@\G),PU6?B7<]%H7>))*):*S
M)\+#)_#I-YWA+V+S08*/9FM#BD0$!U6$JZLZE+_PO>X4TCKDDT@<0^VD.P$O
M3='F,1--;,B(FF^:20]N#3\3SRN?0M8,/@+AR2'I=D< $GWPY:D#A8\#CXD0
MZ^HN5FTJ! T:RHZ0Z.BRC[D%K\=??N7O,>6"#6P5X.W%%[JA4GNC.)Y"KA7S
M.7Z^$C*%=$'OC9>-59O5!]63=QYY2R1>@[O.!\?/Q0Z%R*@.[<.)/\E84!B8
M.W\$SH;G5N%/Z'H(FM"PD=A)*B:R!W/'T,NSXJHG#3+59-H7"FP2B>PC0;[_
M01A3;&BG0(QLL(RKFKA_$JYD!F0$L;"0AEOT[Z+$LSVXB]-'Q$[0#N9]2O,H
M9G*0.]H;'7%42<Z;V6DY;]L=@JV72B[92Y?MZ0(*#39U6,ZY$RY#:BBPK:[<
M-_HX\(J/S_) $L:%7E\BJ\O.C##2R0!XAT[/,> 19PG'GN"*V.? K]>L9>_Y
M/K_L=2:Y@N ^9Y<K!L$O_;M8;0 _%"EI(&,&,788L+E+2%,H@J%(@O:*>7['
M_4R<_8J\S>"#-J65])+E:TT;;*OT4'&,?IYQB>03UYD]#G_\(E*'M0MG30Q\
M$B?_$;#6-FTJW2=#[<T&K5FWX+2SZW0& >OEQ%(0'IH&3XTL[< 0D+R-^QE0
M;.2#AA8^"CW%\PP7"B_D7K&\(.!M;$'IBCY%/C#4H=BSC'V&DQV1:39!L:-D
MJ(,=%)ATMY91Y.N$C@9ZXT9;)Q8C&P<T()W!+TPPV [<^!?A&.8]WTBTN@<F
MXKIJ2LJ$G;F%58D5N<5\(F>YD[-XY:'X1K*M(]!M;2,,.$2WT"N")V]HD0'E
M]D=VQ@$]!*=Z *8--1,Q:I[4N>Z*R8)U#RQ(B:MJ[BCK09%ZA)81',\-NO<S
M_.5 ]T"VI5EOW"GW)/]^T&F70=]90^/S4&;N9PH1%6.)L$?&T.*$'^*_?'45
M_YO$#89UQ. (R"&\*_!?J.!1.,[R JV_E;]'Q2TI"UZ&-,E<(4=JKMZGF,S
M/WV*[^2:Y], 1!&3(CM0DR+1ET:N-:ME =U?G!U ?VS'?!J GA^EBF/W>9KH
M3Y?##-.H,P_5CR;]]OS!B:1B??ZJ1MLX/MB"A^HML$1QA$#RI(0TEW036P::
M8T\2DCK1+=WU(+QM!RLV&T?T7G^'B^+<4"]K$#(Z"GK 7:G  PY\&, *55(4
M'SX#*^.-<I5-?8CQ"@UA*]2\%O 2DNL"%)[W@L/&[9;]?41G#"H<<"!PHZ_W
MK(*I ^;( D!ACYAM\%EA\)@= Q?H<UWU(64B$PQE#D+3QIX"1.G6$'-,D#]!
MZ53/##*F#K0R4(P3JA2<^D51#&3:!=D+;P2?Y@ )0D*"U($C':&K<8>RN4@-
M0.(-[*$@B1)@1!HZ(,BAW879F#/$._?93_6=/?:+F<:QN&?0HZ-B]1&*0Q!6
MMA"$VK(00JAK%Q%<@N!.,X1*C!D?'SL%HU-K#'L3H5]M)2VSI;4R/\X1W+W\
M8=NMB;;H4K,&L>*&JVQE\=1_3*/:(B:\@K573;GW>Y2/TVS3M!>((F,Q3=NY
M0R2$HY<*2LD&V3?(L'"[P0KM*Y%0%/4;@E- MB(4&>A[59<%JE<TW+E1*[;M
MQ9<BH],>F)4S#:XQ+3H&Y<ZLQ8)2A+:%C$TFZLOW&UI"F=@AV*L4"8I/-!_7
M/*#\I>\&V9[ .T4"2X)JP4I&8X1,70JJ9:.D4@X%W4U=Q3(LNFG8&0'@I:+<
M@9N8HQ*4KQ?'IMX7*C@0$4W;01MH:-%!'^$Y4>D#RCYW@?6$$-/04%K)A)I8
M[0!GKBO@>"@[^?@D#X26GC7\'K.DB[IG9:K($3ML;O0_87[["Q%[ )##LS;F
MP,'$SQ!A('\++4C]"& HUK>!0D,SR#K3:2O$2LJ7U>Q]L:/9D,P]8!VG<T2N
M;O"NN^]&8D4=_OM.,B.<?KM7;33:1$<G73')%]-+"^I?[EC"Y/K(C&/>1&;B
M4%J7*<7UC&1N9.N ]@L$LD*T **_)34<"T&&(4HEKK!\0R9< *XHX;TCC:',
M__6_\)_(Q%5,^ IT3V3T3U3NCXWLT%J-;@517(IFD T+/QH%65ILTT:SU(G_
M0=G<V'-W'I94@&G^\]IU].@))[]0M#M5G4IOKQ.% 44N'0 * R;V[__YK_AQ
MMFT!DHIMVL[/Z&Y4#'XA7"A\C68(DC(TOXTD1L9/R5Q(*S<\+">D-M?)?FZN
M5]$XTDE ./]/(O8SOE6QCS5HT"=C@ MO[21-H'D_PZ]%G^$;59L/P]9V/[&U
M#[V'/:R%2/?LZ4^*3+&["$^3*8XYP/E92@3H6',**3%R$(__=]=6CO6;^'W+
MB"[V&B'7(!<=V3.;&S72KQCRCW/%/JB/07"OJN3UDHRPU.(3BBN^GKS<%Y,Q
MV5A$$NQ 0+I"?K1^(NF^4;()3W;O<W5+6Z#1=+^5C>'M!.0:;VW+*-ZPM1_/
M5FEVOLLV800J8ZD-%)!IVJZW=<@.@>_>AX?5@?M@6Z$)?31$E6PY3&=@]T%/
M:M"S>864J>;D]#&\<U_0.A^ NG-&J*0'BWJAP\^'IDU7EUD5>M+IU*%Y_)M,
M,/)^'$2306T]$C:_RQRE7BAB^X2"M(D>%,I"F.;PNX? 4B"\\KJKF+8++=G#
MDC1Q4=)7]K(],6HCI?]0[X^+CK4X+$D[ONXS2M(B:?GVFC0ZE8A! V-F!QXG
M+DW;U>S\7E@QB3\Y>I;H0N8+ZE+WH'FD_'/DA#E3TB?!P>ZEA>OK,77Y-6Y9
M1,5W)ABB4FZX40<,43S9=E8)!6\?A:04TT>@2YCA*>!C=!=]$ 8\ _, $J/O
MN-@ZD'WX9^ &U]I0H35^2Y0KUBU(Y#BJ@&NW4&D6#KCKECY!(0PH5.!?T647
M^!H#Q:UM^!LRQZ,*6E3$A7>WO3>'G*A)$'9%%V.""CPUN,^#(L+X$H]CR]B
M@6SFAM=(HF!M  (-1;CW7[B!$A1KPYU;*?#IT&V1K!4"AA*/FVS/@&O(,8G#
MS8YT$V4#$XIDH=C^U 'HS@I^ENU[N-#?CJI9X&X5 !#@,1(@'"T(*O2DL,(-
M"KNI;D6%&YM!?0Z80A?3#6KC?,L%YAVNV-\JZ@A].#<1O R"#AK7;BR(#IT@
M]-CHI,,A) T4\\=5YFCS8:4Y KJ##@K"LF%K+^;NX(LE\ R*Y(X2FFDO<$G>
M%D(0<,&TP;O0WQK"+< OA@_$TRK"&TNH,@'Z NIJ(_,O5#P1\A*$CI1 #IJ/
M(>.A%('BN] ;P_7:0ZC*HZL5,?S"-9&WBXZ&N1&[GZCJ8N];FVP.A@-PD.9&
M+(R35N@^!K0:C00RR9Q/KX((E9IXOV&,#@XX9I:ZN_DCM"#0:;9K@@3\]LN0
M%W?D?G;U(*&"=103B#Y>[3T2@P&)D)(O05$"/?SPJ2;OMN2'/L@5<GFZE9'O
M>Z[=R[Q67?!"TA)9W[M;6]T#Q",-K8)=GQX">3Y ?5!O<+2DP .KJM]@!@;A
M/R<'1)5=/MD.-'.\Q6&N,@&60/$#:12P(R06';\M:*?MRRZ8^;C^.2";,#NU
M0+4UI@[F 54B[@06_(8"D+A+)7!B<D.7NAM(3T1CEZV4<QU/S*%$&G!0\A B
M?@(PIB'TQ5RXWWUZ^3K$5I<5JB(H"[-'K70_S0T&26ZU^+"MO4=N>6F"5&/'
M]J%-\2B9_O'B-9NH*85GJF3VP-KI]/-/T_K]+(-J_E^]X:(&3]^9";0]:90R
ML!T="D"4#8W$%+H7"14 _#]8*E#%0WR[GAL73NA[6"@%I"GMW/M"?SP@;DB@
MH3S](G3Y!6GM]X+MS762+] 9LE/4E^FLVIF-E.9:9@DI1^>+DL]S'=15X;";
MSH;,D):SL56"^BA,)5W=W*D.%!:BAJTJW*BT&)$%U!48(B LA$"PW,@]5!Z!
MZO\#&@IM$B@*+3RS> 0BRKW##_%&NAO:.E@,!OXIND2IC(#JHWH G*EW9-US
M=DP]J"6@F7)PXRO4^:9N(#I%P'9C7]JF>2?P;"-H ?[FCFKDQUJ1X1K63FYW
MO3'SD)$%+4)SY>KXD>$60C-C[T(Z7!):*?\D1M'53MU#,)B&%^@"B.+TH1F8
MTAN3!=LF6Z,XP FV U4P1Y\%EB2N$PG-<#<$M^3=1<" +[7"ZZ,0_6")JN>
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
MWC-W^-U<2XN4(**#O,RT.%JP14:("_2=2,[FJZXRS*S57DD?C>ML][DL$'_
MMD??]Y(0[=I9L%U\7*:2XWO'J#V:E4+MB7[*>_E%9V6@C.9OHU\A;T97NV.6
MHV)/)F@!VFPJT=FT=S/#BI& )-#]]:!5(YIFC?KYH/]#[>T ?)O1.Z:-<7 3
M-2*1040%<9,VHA$<1XMH"6(U:/>['1D2+$LE(.%N- )_%PY?W&YQ2X[6]BF;
MJ9CAN^15M.FHN^&AY8#$5HR4Y3<WO?B(JN&#GM(?)]H'Q5X4ZHVQ4L@],"9=
M-+(S^OG]OAJ.T1Y]5V;CI/P)Z;(-!<AFUG$,\*B/U_F:EW].XOFFW._-@8X>
MIFBPO;CC8AW*G'VRW=#%)0V&WZ*QXS6=G)X%GN'?UV;U(D=4GL9?2?;PW<KX
MON;RSP;P1L+*SM)"'DU,1+<BWR9\@EX[6X2IOXN51!<(8E_!O4WQN#GD,^"Y
MZ;&)5"=$[28POU4LQ_OSO1_5XHRLM9B,/#-*IKX8/A>+S>GHX]&5+I)FOK/"
M[PTQ&PK;HX@4G7LMTW2?"H2N2&[:K.1GC19$I'"$$X\;>!YN#A?F3Z:.'O1J
M_$TV*H_]0)R+"M'P+"[*[?N6(A"3V?-Z*M7;V=SBI4XTET##6QK+',5"!/],
M ",T@SQ*S1RM,:AY]F)=,A[+A%\;Z-JZ7Q.)+/*5R!1[Q%M"5048AC%E>B@'
M;Y?7WWAYG;U=7K]=7O^SR^L2YF61X66-(A1%%-)I3DRS%"7*-)1;@D:S)*-*
MBIR6?P1O#;[15<2,_]@H$6:Y290HI]TB17(U7[9$*.'V5PH9GG\LF"!7H,JS
M/+VRY8=J)0,EX\%*/MFPEW+%-HA^Q=>J6L,%4[,%5S+[*Z==L],M3CM] SP4
M+3/?>:9FU!"NY/97TF:3?A8F#U:A], MW<?%@P@>%F):)/97=F0SMZZI@FJ
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
M<,CJQ']BK84X[95$J9;N.)Y!-3.'<V95WWEASNQQI,=*:+*KPP(;M%_\SV,
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
MO+FA7G_1-R&</K4<2Z[%P#%47*SX&=0C!/-8*3":S:#1]$T#,3Z"&N0L,M!
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
MS B@AZSP1GFR7(K=6T5SIC^/L*.+B.D77_%23V;;,LE*Q/3-^ W>@Z]&CG_
M4:F%HTK'KX@SC6YHX6>FFSQ59#(O>\D6MP!['*7-;!@&.38Z])($@LHO:. ]
MPBED?ZA)\EK5M]8P-<-V+#? )C,RZV'N(S/2TO30X^&U9J_X@D:XHF^9XTDH
M,6DVW<["87BKZ\%LJ],R)L%P_)4DCF>]SI$Y:IFZ;HYPHV\4,_ RE/$^P="K
M4),XX-3$ 4LET&XD5179^S@2I<P#(I=&MC4'Y 8GI%5D#2EB(PW3<D-2TJDF
MJ[0$F4U&K*$JQW$\)V1N3I$U+J!.R=SV0<3#BRK#(?IP//I?8% '&4Y,;*YF
MB,?(2* UDDU.5/G.\NE'.#08R38X=#6S18H=^<XVE^!3KYDK_:TBN+X4\2R;
M; E-MB&PHM00D4PUFDV);:@<UTR+J92,?HV:E?<-4>38M+#+5N7](J,RF1]W
M$'4<;$).5U:G!Z54E0Y4MZ\/EAJ5R2\;E<'07U7GG(Z>(</'F4UA/B$1NVG<
MBP2I<,Q+!WT;G@0?9M&K'^\<=T<FV3'[K\KSDR&&2GBM\22!((:)Y^)/*,+E
MOVKIOHN?@&RC6'0(P8[V&.O?F;933<7URQ=8D*ABLKB)RR=]U. \F2? 7+7]
MC_'*FBGBA9AU,#%=YZ2EC:$:#E$&C.J1;IY57Y60FY_?;_5Z%4+PD_OU#L]%
M-,)7N_O!0&HNG/:^0*'8)P3^\3[6\2P1\YUGYFI'>&!>QNQY<1$C_A&3_BBG
M>G54['FP]FI0O,9L7]UMGZ'9(^)G?M?X>2DFGKS-)8M73(ANFJ[6K,^<2/&O
MHM@4L<.(W=PWQ [,M"4XN_8X]&V@&['^] );GOKV=+F)BR?ZQJ36ZT%5\U*W
M9H8&2<-&W.-%AO#Z)[YD0;,5FRL1])YBINS\BIV5_6/G8$/C@I2K9<;D6IB<
M#:^UK';9[^TW+3IKAZS-LQ]// GYL!(V<SCVJNKV4&.3^1@7(BPG[;@+*WW9
MA<4C9XAMYP]^DYLAOER&>GV<]L78#TW[B:3]"#3MAZ;]K"3M)\U)Z52:Y1M
M8$%#%!6ID88R:*AIR*8X2134UFJ3>586-[VX.<T_,*4"DW\XO\A>W%6G$=1/
M^,%>OS#3^ R#2:=X)/\3!C_@.F9PP6-/<F6.B]F9)18ZG6Z>]1PKZ%@0*_=]
MX??.!PV.'D=2^/;!GR%V"#6/E]Q;R-0-M&SPG>#<B2?R(T2F=T4MY/9/;P5-
M&V^'AZ_&.:>;/G\ :LC Y1.L=*AC]@[OEA*I(YQ53CS4,7LGG2:X(YS4 Q=5
M#BE@?D]'2-S5I<&&3T'-ZE>-Y1!\^E;A0GLA[,3$/[QM0OZX][I>(5@/X;Y6
M G/E1/D8H!TT";Z*>+M&E(C)_4DJ(4,;7R1GI7^ :7@Y(?&!ASD-X?7'#%F
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
M@0'M>&FLPPF340@Z\BS+4PBD$'@$VHE"X*HAD#IRQPJ!FW/D%D-@03. H6A
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
M$\OO;=-4)^B?CM/3__Y_4$L#!!0    ( )B$5U1Z.W*;=&H  +:#   7
M9FEX+3(P,C$Q,C,Q>#$P:S P,BYJ<&?LO'5<74^V+[C1@Q,DN 4))%AP" [!
M0@CN%EP/[BX!@EMP@@1W.W!P=W>'X 1WM\>OY_9]W7W[VGMSY_:;F<UG_7%J
MK:I=:]62;^VJ#T^S3RO BX_B4N( #"P P#S_ 4\+@"B A(@(0D1  H% R,A(
M*&BXZ&BHJ&B$V#B8N*1$Y&2D1"0D%-1,M!24#%0D)'1<;QC>L;"SLY/3\O!S
ML_(QL;&S_C$(##(R,AHJ&@$Z.@'K*Y)7K/_IYZD5P$*"58!M@H.A!&"Q8."P
M8)XZ ?+G>2+ _.D!_NF!@86#1T $(2&CH#X+5+\ 8&'@X&#AX1 0X.&?N9[/
M?  >"P'[%8LP(HZ\'HC2%I?5-SH3B4JDHNVEPM@Q-9N^G1\R"AX^ 2$1S6M:
MNC=OV3DXN;AYWHM^$!.7D)3ZJ*BDK**JIJYA8&AD;&)J9F[OX.CD[.+JYO\U
M(##H6W!(3.SWN/B$Q*3DGUG9.;EY^06%E560ZAIH;5U]>T=G5W=/;U__^,3D
MU/3,[-S\ZMKZQN;6]N^=W9/3L_.+RZOKF]L_]((!X&#^_/Q=O;">]8*%AX>#
M!_VA%PRL\Q\"6/ (KU@0L87E07JV.)2LODBX(M&9%6W(5&P*QR_U[<90\*C9
M5VE._E#M3YK]QQ3S^U_2[)\5^Y]ZS0-H<##/BP>'!0@"5_N8']_QOS'-@&\]
MSX(;51@30O;]S4_7>I[STP<';CP,\Z,&'<RS@ T_W1\-HV[ROK__+#T>'P)\
M^I_=<;^X_9/TO^C^W$#V'2('^X?$G\3AX,9C_[8_V?<O;B@:=$#K>?;?]D<@
M(//_&^F<UO.?(<#SKW?\H!Q&7""1S.^?I9E .;A_O.R?Y_K'T']2;4?\GX3_
MW/#[+^8F[[LC+0:\!N40D/G]^65_-?9?3TWX3\(9_](0?VX0?GY;QK]BQ^>I
M_=ELM63?Y?^8FG28O!B ^Q\@0Y<B94_,]N3< NPM:4V3:(E:$E7T+!=RI98)
M]O07HFL'RARN/YBL2+>8X;(\-[ \Q]I:RZ2:JOSE*M.&=UFH<3(C/O"W$7!L
M']^_FXPNWJ<Y*<U])*NJ55^9&*>)$"X_%&/SK_6Q78 2<%/ 5JIK75_U>%%6
M-T]5$_/S2L1P4T K:M_%&VMWS4;(CM<^ 2]VD_=UL*?YV!U3H+7C%[6,%"WJ
M*!]/)(N5U7TWPNRO57/V!. ;4SK9+)J)3TB[ SP=,JTN%V@Z[;]\P8YLM?8V
M+W@"4"JG^-@POB>G'C@XXDY:'>7)G&KU8_(0$I &:;FG)@.GZ00N4/4IOC<_
M1<$%2\+VN9JQ^8TXK!6Q@U@!^ABRG\XT;J<6%:_ONE^8XUS7*,*U,ZR/+:M$
ML.KW+>+[QD9.-Q"W^#O9=ZSA!BF]JZFPBSV\$_"(*FFPXO*8X^%9+W&L)P_H
M#EV3?6%!;LE&JB^IU;5Y<-H(H0_;.!RV'Y4#?=^]NEV:#EC5136_7=\A^EYS
MIJ.MU>>X45^8A:2\0$5=04AXH+BW3)^N=LVQ^B!ZD! LN*!7W6CQ1C(NI&8&
M*.BCMC^4<4.]YY]@OM<LL)A?=*HOF\^*H&,\!"O'SZGR=*_9R9*LJ(AZT 5R
MU$*K)J<79#U52#\2*U7?Z-$)T]7JM?7DD7V'&;@6^*U]?<IQ7+W]+:U]'%E5
M+5+]1W!8N8"<LD&47=YIGBAS, >YOQ^8T^*N(%8QNK23C1S"7U^WF-\398/(
M<JV:H7O]BN:DJR7$86]=ST&/\VH,R;EDP\/ F0J-928M=$>]Y;@XSH/&.ENT
M1!;A(&=/9_Y7%Q(B%V,J+G4@R?F(8 Y@FVP2RL3N#7>=+,.LTA2O9AS >. H
M9@V9A22"7*T;6>T$XC+7&#'N6@5>!G5-DU%.65F7:.#5AQQN]*'W]^X69V*B
M#IA$?MR!' 5&53?7>D@5#I4L[[VM6-1*5/EE3@<C\G8#]OWV3H_65-!J1*;=
MM$KR$Q!ZY.B)US4MZ7!5(WGU\B[-T#\)..?WS(>+K3IQ*LCR4)FQ8CI\'2N4
MO,O+A?F*WO*(@*[5&XDV@M^B^EK"T];U>'YZ=W=-,\EC+ZR//D$?OBQ"MEK=
M.\C)F7$MKK'N;'5F22LOSA]&>1Z)9\./;1[B@;6J?&P2P AYY6*-AQC=N$XV
MM) *_92NY9B!0=Q1C[[=R8LNH3/))UJD,7QE+VKV,JXO@M=1O'U3 GV$;X8^
MWR7W3G.,C^*V:;E8=MZ*T9I8RD3=BJ\9#O@AM7Y1)EIW#<Y?6-+%Q'!I/A.;
M*%O*KJV2-OR.:-UH8.]/YEDWPN'U:W4J,)TY4/5SK0LCA'+3P&%Y(IZDBE,<
MF8<VXAZ@@Y4-*I]]'6O/F>;X!#!N=3#5C&S! G>9-Z@ZKFN\=]_N78O,-9;R
M@O5&2ZQ>!?(62=?X$70CJN6=P,K*ZVSJN!;>,[Y/*W,;6".N9><7<:AM'H^G
MT:,ORPZ* X7Y\'N6PS2LRU">:1PW/ &&RR-@;T0F1L,0D88D5Y397:1UT'0M
M&$YYF@],5K26DE=7 9DHIJF!5DM]#$I]=49-06;C0KBC4[?IBQG?2*>=-5\7
MB>GRSE0 ;Y)=V,ODSC"VY<<F>&YKNV8]U63F.:XC8?MR=O&(V*$3+J?:(B(Y
MF^%;G(,+]8<[T&E(\^L]J*H7PR35Q,5J7CJF&DU[QV49_0%;TLL0<.^ONVHK
MGFVRZLG?7L")EZ^12=[<O8C1Q(%-@?5#./(-6TQ#,&V::]&M:@<I'C('_0^K
M^0&-YI9Z]Z#:NLI/N2OO"C'V82)USF%Z[X5F,J>8^(A=F!P=)ZS776E"I:([
M2^*& 9UL\DU5+]PEZ7P7?Y6&L2,.S724&WHBS@*N)+IZ>#PXZBC8]$F5X>#C
MP=]GOV4>*B?$LJ39A FA;70W[3BUYR,Z%T79+HSLY(3F;LLI'GJ5DU$<PS\V
M/=)LGH#XD+F5M'50P64K(EYC@@#]=?03@#2PFQ#_'AP751_'L,DBQ1YF(V#;
M"Y#%I:PUT:H<!_E893X!7_TN#ZD*A<"D&Y1J^F:(\ND\5GEEYGL>TBMUCIXZ
M"YIC%TD0;7.D04'SB)=)AM\N5,-KK=S(?L6_$3V>Y_%@+#33J(%ZY^N8VWO^
M=-_B1?DHL"?N_Q4.SG=G]@N TLS26._?0P8$$B=EA;A:?<B/>5&I3T-E0VKC
M:3'DP;OVH"H&/9%OG+3*XZK00N<WC$LL+J)-".A;/\( Y;A%Q![?R4?JED_=
MBZVEA%MI<W))$PS]U"P6F[' @?S8)MC;6:YZ E9E-=[OB(#E4V?-%72W]Z_/
MX-Y9,]PO A(Z]CM")*# HXLB;>+/U?531R9IS(2A4M06032C8OVIZ0UIMN--
MJ)U74%L/Q<!YWH)QN-6%)#Y(5, RP6K%!-5TCG7 N^;00G52?<.Z^JETE>KZ
M$,;<:<4P-"M>G[;S87?E(?I6_*A=Y_J:AC6>ZG %=Z[*$.-J26R"E%(L%UJ^
M+1^&>\:ZM*/5W"!;>[ZJP>.8TX^;21&7N[*O&V>Z!=[66A.9)V^FU5,$=<RH
ME-/X-,PS)=B>M3BGIR $<?/!:<<''#\!7<MDS]&PW_R*=5;C.'Y;_.M]71]Q
M*-XV;9/&A #.M=N"<&W%9 G#!>]>8%SVY&N(/)-6;-1GR6Z7[6K P$-UPB!!
M*+)SFJBY"+Z*O]&4L4R'.\S2[8"TE]^\Y"IH<_S>-NO:K4=M:GGY3K8I.NQJ
M^* Q ]CF+T<Z[RLMW6YE7;H7J#BN[B[7+M%@97H<&8"W](4ZYY%:*)RUKQUU
M)\M^:YY5VKD\;=MP=3WC"C-Q<ND9'04E8F+MNAWYW/.LFI:54DZ7.3*7:W^.
MP7J;S5@OT;O-#=R%32$S6>:>I >O3N6=?!^P=L-><@A^;;HNTX0QT58F.>Y%
MK+ZC^^*H42TA[ DP59TSUF_O/ @?QG"+8AEU+ 0_FZ73*?FP)/^W%Q>8E?_C
M^D@,YGYM;ELW:'#[G@ZN?'3UJXM=/P'151_G+NY2Q=FQQ$GL\.YIULJL1&>?
M TZ92^C^FSS///+Y&*M?J8[G95KC!V6,[+T4D\Q##_-,U'7OBG7T+N8;,=LK
M9SH E\U[Z<MFC4&-A_2!9_/,/; (D;FNAF/<]3SBI7<Y/U).E5A;4:?L5\QK
M):Y!E8R5$4#HO4?3$/"X-8D'8ZC*I".ZR/(3(.NW?16OR@C$C6+5^5V0TW%?
M<=A9!^)?EGE:K![A+_^^93RK&LG+J92&5/ V0KE9_'@QI^L7K-'5S1ZQK3%V
M;OQF]DNLPKSTN=X01WY*LQ<BXR6__RA :'J5OG ;LZM#R:+9QS&=T46I?>.L
M(-LK1&JOH6'RC4ES%11Z_NO N7Z2792=WA7W+FF=QW0# ],[T42P0UNFK'V!
M?YD\5*DA5*%B[$ ' 9(\:ADW^W Y@-63BSF=XGV<VW7DF#?.E#E>7 WFW5=4
M;S/EI/>/INN B>+NYDT&]NZYJ 96/2FE2'\L]^,9&\1("<?(N"9TT<^NGAP&
M6+O;E[Y.G;9OK###YHZ*#B-AUEN\555>?0*0KZ'B=16:Z:0<ARGFF>A)XWJ1
M;@BMVBN'!.OIYM--Q_7+UPLR)X0-"Y?TKE_N!!.B[NX.1PC.NP!7>(V(K&=D
M-].=G!:7OUN2$1=TQ^D^X&<%%P3[B=,.)*P-\HT53]>82,-93Z_^BMD@9]8\
M^'G9OL&/G]YJ;U6?(S+888%4:][,;7D.H6P.&FHFBLB09]/+O1/YV67K,7S5
MFL ,&A]XU%/B;H (I^%M*$J>F/&%Z=B.UUZ()+!AE6#U.BOC]\E>,X4F_T?B
MI#SY DDD0T+M9K^:1CB:3KGKX;DCJSQ-Z>X0O#1C)V4L-#N+@DD^)N9[BRR7
MR ,CC!2T,<_T@9&D+;0_1<HT8M'QMD*LTA03!!-/Z_>H^>+R NJ'5%XL2&75
M"[GUB70WX(RM<(3KJP YJ83<C&'@AO9#WIV &7IG;=1Z9E_/:0DCLUQ#0H<7
M5\MH-;K1/3]98CNR(ZK?1$Y_P1)DVV[]^$ GUOKX<KA[O0.Q^U#R  (?K<#S
M@E>FUDZ]\IU];.O1?*&.!X=$XPFQV6U!5<5,B09]J""5&W6VP9!B[9>+WJ.T
M)CJXH9)&O:(GH)TVTS0Y;K-3 T(4$/93GAZQKN9[('SZVA[D@7X&<@"G#CD1
M&\X3J*:^M*\@-]2W^9998P!5M3S_W9BJP@0]+AQ0B^S O%Q'7_Y*(<LGF@ZA
M=O=2X$(S+'5?Y_C-#LB+X?Z7D"IH[0AW(-?%#P8>&FJ=^S7MY$M-C.02R>K7
ML$*1@$\MU ZEIP5,T5]^WN'M>OU*AVS$;GDTN/:=KX< &TP>NB4_S-VEN=G/
M8'<-/H?G8'S^)$UA[S]JU<U[&Q+TB'/P&<RI^9OA -;LDM[3J])JH, 909]G
M98V3AV?#=T];N2P 8L$1)FP"'4@R43!R$M#/$.J,D>)5PO#D-W_C0;AZ,[Y$
M/=$FB3@ER]%>>?BKNM7R_>&VA:'C>C*P3=R3' Y)P'?FK,G['&&1KTRU2/.:
M>A&9>CTML<ORVEE[RKJZ88A+,620P+*D=.S 'RWXDS\\"S]?R]DXQ/!X.5'?
M]F6QQ:L8]>_-V_+4_FA=]KT"/]X&!312D0<>,C-I_%Y<U,JVQ>L(4)MPFH)9
M&E&U>G@'$&2@$+DOF>.5E2Y:Q*B_U_E^FAV%ZBC\>BC@,X_>Z$7?R\]'/<EQ
M)1#H,X:KMGB3=DC_X>:K;X:Q5MWPNP5B'T36]S,*RP1C"XJ/HYPEVZY^^C]-
ML A!$BR'LYJ+8=O)$;)(I@I+VEI-/F9,_L$P<9?WU\O*]@&,$1]]9+T@,(-=
MZZ2>S&%<[\QRZ8X8P8:F4VV"ILIOQ37#<P(]/0L#8]=*W"8DDM6IH0UI!(?6
MA\DVURS4@VE:!GPD;WKDN-<:.E:':+)=T1,73SO82 \&.H&PBP.(I^VP>5./
M_SEQ(D6@!:#O4Z&,7>]'"*VLP1S,B7"JD:@&[*!DKV<NI!0L>,",#&LSE!4+
M%8,QS/V?UQL(>,O%>1U+RG"\S:2+-<5,K^PULJF'P'G:U*IO.W]4OMB 337(
MWYXN(19$6537 J=-[!^X0!4:5=V=1KJ)[:#]7O*M5#E,]6DD#9!(Q4DF.4KQ
M=OI0]^Z ;)T<Y2PCQHG#C3,A0B+94&;#ZHF#N:S&Y$,DC7E[''&C/OHW#B/]
MJG "6_GF:70G\/4"&1D+.U?E30U(\\N&,1QF[5CQ-X:D @[<N[PATXFF[QVW
M_ NE&%ZH)2+4I%A2H);WLJ5NYRZBZ:=GFSV^F((4!5:@TC1U?C22J+<;HP#W
M XR)/E3<6AAT<*S>9+NV0_F-&@8#UN90^F@3;F73J*BA-V3J"L($(*H(,ZJ3
MW,8$5H;+>=L(&!.&G^_N0K0J8)1BKQ(L[%SX;.B]'[&> +1E"=M\:I;%+FH[
M9$(F[76*TAD*Q'F",H2@H2/U>*XTO,D<__=&B\@%$B@='(-6T8/E@2ZM//NH
MY%XW&>CDF'OS$9F%2^J[+[HL3THW?=H8[.@6)9:MXX5]! SY5)2?ZSQM8*/J
M>VU)VNK)3W*<KN&V>,#E3>2VYC0G&?E8=OSIO)K^+[*U4VT\I3#H<: ^EI1@
MAV^RW[;T<?5P%EX67_R619ZJE@YKC\U >T489Q_2BJ'_J!L*L%W&7&UAL7.T
MW=2(5^1,U.%J\5;:@L@::6P ;V6A*DH2!+\=1B(+"LFQ)OO.IOT$F$BSE'^P
M,(.'%=,ZQ#Z8E>)-(*[JLOBUTXPOO=#0$!YN"]P9=55J"RR68B:.(L[+BL;4
M#6-J*<P^YTY^STQ9:VNK)T"O,NK3SID?>; SW(_.L_1Q'\;K^EUW9F1S9\YQ
MB&(/C*'C;MY\.<5)8&Y]N?0WL&!5X,]Y+R6NE&@<27*>GN-U@B.5!(VQG%&F
M\P,IZU3QT*TV1V*&\>)B)S!A7Q^"!'\A[90'/=@:X;@Z%3I/W4SW;7/502%&
M<B\--I#B<CL'L+@V4)CB"'^/_O&47JFZ"1JQ-:?'V,QA6TN_[6<C046R'<)G
M8N]JM-)DO">;*.J(GATC\0K^@,*$ZA<I_Q[3X+7BQVGLZ?XWX^IH'U]+49MF
M+<5'4'25A[A])=!)=2B1TOPDN7U\F6,S@0S6,0O;%TE,JHE22WN_7@+8W3H'
M5S<P:FPL]R$,!4\JC 5.+V=WM+P9!GKY2"[V--*P3JPRUU!S\-][1,\O:H0F
MYN#9=U881BY5]<+V2GX1I06!YB$4Y<>->*&.)-/=B]H,[4X-#&C]#<*+:AOK
M8<:9Q^=>^-"(&?D)-*=MN5"\ ?:#!CV>.2)>TM!4CWQ@IP?6A\7:VE%31E]S
MY\AJ>M0<*YM+93R[)I30)DVIPO"=P8\Z8"7*I8M(]EMI2H\SLJL]NYOG1*,3
M\:G"-CP3%G#C5.Y1L<NS,^00)'3\,)V;L( GE1T[HJ29<)HFUC.RB3@[B(%Q
M4 <"E= =>WV%#K@P?$LR8I.XN^'LW-BH9#K(EQIV\DU-W6:'Z7<1T7:6#Q5O
M@E/CW6!VYE\:!%M3:ZKIO6"Q/%P(R^_&'-UQB5A7J3@!78:-+85C+%&BC>H@
MG0Y>TWX!N1 "?A*D;-I& 0$U248O?Z3J*#>*(B71PNVZ%B9XD8Z77< WUU4S
MOX\3W-.BBN-1Z,68H3A?Q."5 Z$L4TV!U[3UK&FBCYBJB>W->U@ZRPE56(MF
M(^FPW0\Y1J]5=D\<>1M00_M*U_'BKSZ><:Z54(!;R3^5"ATDST5V)'_2^'[K
MIQX)^4P@H!WBT8KX"GD^IYQ5"/XL=6,R62<X[W<?I9J0 7:4%B1L8^4+6@4M
M8 ,2GO?AIM<EM(B_]:+"FT$DL#K<C-FV-58[U(8-P[JG #P+#S/7?FALK=&'
M6K]&?_]+)7!<F?#,\$8Y)2WE\[X!X5':U"1S@,.'",GI+I$^W*CRY<6L.F=2
M]XK7,;HHIK'F++^DC)+&QL4Z2W'<T.B_@\R^<"^*VW;;"I$,)ZW_4+D=UIR>
MJ# M1RT_,N%[2S5"1R0$U[PLK(.\OES_@'$+EI6$MB11R4+*4HA>#<\NQ,%O
M^,UVVW;;AQ2 OCKPFO'U[D>(%N6;97]IT+1!0=53XN*5(&SK%C/7F&LSC*%I
M]-+@"Z>GHPX?M.N$FZ"EA:L3@,#PX\H+(?QWD-*409HVY26OVGK\ZHIC"(_7
M.HNBS_)<D8,<*%;3150G[5+*RF''(UCW,PVMA1&%*'T2XFQY+8POJ13I66N=
M[:JV!M)AR._V6QZ%RV5Z/8:/E&>2=$\ &X![U3/(TLJQ Y$#D1?\AHY?NW=$
MTT3.TY;'+ YA5QJ)Y$ZWZ</TS.QHK1R+E[-+@C.JI5V'(QD;NPR%ZW4%N)!D
M*3:5NR4I3)(OWM/!Q1X/1[J:Y)IWNS"MQ9P,4#O;"3?>)P[/"HF-5/#S%'L*
MMD%O/4M]7VFFQ$<,[,]P0O&-IJ?%(ZU3"!B$>MZ*; >NYPD$BP&NE@(DT\L$
M\=LB]<AF!M:6S=J39 :-]GC+/A4B ,7J,=+*K7(2'W]QHJ7D.,EB^CM\=(O-
M #9K6 <^1*H8O1&>9UC\QR#-Z-/IBHV_$!:_2KFRVP>7C!/"Y[<I'MX4>WU!
MJ4#AW,#QP91=+>%5'#U?4MZL8-5B8X@2JLQ@C<8.,^$F?T?UNKZ>#FX$1W*:
MN61K\A 2NEJ"6F11 '^J^36.TO+;*U1Z!#C&\$[#"NJS3M&.VX.\>4<"2!5_
M=R;Z(MAB6QR]X6-KIIVFF?R]IC36+(>;&"[,]JB+JE)EK0PCX^!T)'].6_-R
MIIPH4=8;!6?#??@O6'U]!$5D[,>'><7:YN@FYJ^E()F6+8W*2[2IQ-;4WDBT
M_/1U/WWX;K<[G"^3%Q-&S6 /NWFGXRRS7!(&5;XQK1 $]%)E4I7HBZZ$.]$Y
M7.=6U[^U!*^\ ?/7:IJ$+Z78]Q:W>K3ZDTFU]?ZVF*'+P- 4';=FN-@+O2EN
MK+7JL(QTB[7P?[P4\,JS<B6Y[%'\+P+L_S_]?YM4:(/YU+-=%%#-'#6#(@]8
MO_V47#<C#:; @: =:&VD=\0(\3IV>'PZ?LPLW:DAGW.BM.AEDL^JE1I46/#X
M+<VL_P[#?L)_WH<KZ\3+GRD_V=P<988I90*KN?O&^8M4>$[-&92GQ]R7SS:C
M+^<),$,^[,HT5(J&W 6<A9I8QZ,8?_YZG[%B9X'W!(B>,.4YY^4,.G65?#&,
M.9=Y;'#05+/LZ>VZ603)]E<<W!.O$9L>Y/@MYC2%C?(WIW"<),0%KT?'+1SZ
M-]DT">CXL\/L3"?8Z,Z+.5N\'8#O)R5U>\?!87!M\C%!XK@I(H4M\CU!30.M
MOA0M^:>I$I[LH46%3Z<WBOLJ'B;$N)=P=>PP;B%T&;#_IU#^SA-P<I;_!,R,
M/$Y\;%)R> *N;R:]][:?K9P#Z/P,H0/^\6GK7G.=7A<YG)^FJKZIKCE5#+VI
MTJ_32JXG!D0<"%*0),L&'+ZK<@F&6S)R4%<W5DV"]5WFQ1K2?AE*F%OK]2U%
M-7U>A.NV[U**7'N=0I,E>.GU$^IE*$4:2NWE\//#<EB+P%*.*)D:5H4O(2[,
MS!2IX*. (_GMS1,P;R8[P4'LJ?L).LE( ,')<%A\YQ6TZ)!K]I=&!9K$<.5@
M_D$)@5%:M7QL+4)&9(="77= 9.XF!7[%8!;G6LG-JBEG]TSZ9<":+/5'PDE8
M%/\H3*K91^61Z^''2W19,1FBKFK&S\C9Z?L5]05*[WI39BL IBVX&+91I4?2
M2+44K?@KI8G#DLA92I\^FR^(ZG"]/:BXD;Z!I+9"I,I_(!_;)^#%/:/[VA#9
M_/#(OB[#[Z/+[[S?08IU)';9@'U$1K1V "Y,QR\79N7)^?GI,^7@$HH:"V_(
M3RQ[2H@FH=KY%ZFEBT*6>\$I8<VKYJKWJ0J:2#XJIQ]%<;JYG/O.M$X.=,+%
M &/3]T)C'OQF.4EH:1\T"7L(:6,C.Y.=XK [7F<26<U#^:ST>QXTG/FFP^4G
MGH#U;?DGH"S](??[/VX4EU>#C?6<V'^\4@%+=6NG?(<JWLL^@-QD#-3J+"JR
M3#.I)S>T^NC1>HR#'C4$"QYW+VA'8<4.J"1JQDH^R>''2/!NI8DFO;:?2KQ]
M]*\&B,2C,6+A HR3MXQ_V=K3,K.YQ?Y^#S.*@6#Z-_<,7DK(/@&1/R0>F[TO
MDY5WL_*>@)[AK"= 5_!.A@[VXK\+/O];]&6/J*E#!YU8 N4V-M^,FB^GD'S=
MVG[6^5:^> ]?T%R;2ASY=1[%@.3Z&_/T7]ZZ1H?/VYKP+,W?-<8$ZIOQXJRR
MMF\&8WO=&LBVS^& +RB -I4D=&Q_\%V\*RETB"VUL=2MBEQC]&<(0/=/1)]\
M8AU6XD'-?AX_O'NY=6N+RWG9CXI5)THF26)%0"I%X=!'ROA_N;WGVA#E?/_@
MG)Z)1.P!G3,=1IX=]Z8DL$TJW 7H)'1SQM]FXSD3>>7 VX=).++#4#)6>2U+
M6OI@>&D])RIE@Y/-AM_3MTECU1\B#J(MUP2$8[9M&$]]W\"A(//VG^RIIQ_[
M[^'L52R9$X57/Y0TI<\Q?KV[$DN\A"22L%7LVH\7+MQS-]?H.8,Y?U@XXI8W
M<DZ?5"YX1->SO=NK^QI$^Q ][<-[P"8/G8(,>(I,!?LY8.0$(ET*K.=(Y+VP
MXL#&\!Y_]@(E-XRH>JZ@ _;*-7EX3<)OJ\$;)SM]>6:V$FC)7VW%*WXN'A>^
M QU.5 .F8_\ $.6OX I319$,::>;2GP14\'[P^TX:&1>XN.R_W4D7.:KVYH2
M!K;7/_(HAPH^L68\S*K>'1W\YIV\%8_%BX/S.> 8'-K2TA+\%?<@6_X;)$0'
MC+-_<PA5)&*39@_R.&OY%7<7^TA:)/*O5*O"]][W'KN"%V=/ &2\3/DO:XD0
M?OY?.--_-]%3J4YM0N/8#S@Y:J=H"<.)#S^TG(V+SDGD*;C@FL]#XL\D\LQ.
M@B]X9NQ>W54PR[(\@,[XE.;%8\D24&.I9)U9?MG:/ %NXH\^3J3YP+C#-TB^
M[E4X_V2/9]=@NIO*Q269?\;+K#_60T(X5NGUU %E0TP?85Y3A"#[0B?K[*,H
M?Z48H)MMC(*L#Y .&6??YLQ6Q?.Z'%#JRW0ZD[.'\,) U@6#<Y\ /3%;N*[\
M$8YC,[Y6&G"F)X :00>;V[(6*L,T?DKOBM"=0P1#6NS-5E4!@\C?]U*W'=_Y
MA+I>O(*ZS!.EN/\,JV[=6PMG=,-QG]Y ?HQ]28-@M:E:78$'OI!5%0,1II=B
M&S&S_'@Z.E?GH7)\PFBX@SS1T(E7"CXR,6U%#K'Z3\E&E7Q]A$AF%>F\&EHN
MG51V^$$X-U$,&QB(TCK7)PX[::/-10+IB=D1Y87GCG&@.DR>^UL;O6=C:#&7
M^!X7UCL;+DPL!&_BK#.[52!Q@N<4N7^0)5Y?U <$+AQ\[>YC %-6Q)KT"TG!
M$,N^Y>$9 ISC_C(7*SJ =4@-1*NGJ!1Q%7L:B](;=MGVA;=B/R;3!W,@ZT4;
MAI>Z&%'XWT$.Z>#$_[N+UY^IPE'&^$,]D7%\L$#N.C77HJ]W\_4#2/%V@H-1
MPSVT9IQ=(=(-T8J)P)B7@W]A:L3H_C,"4PI9;(841BI41'JOTM#8OEY]Q-G2
M:?WW>SF$)BK)T(^!HEO\78L'S5N[0ER#CWFDP&]<&P33\^)O1XX6=V(QTQW[
MF%LKX:+PB4] (QXG7[J(V,=YD>$9_<M=BUHF&X&1U[ 4(&X YG;+AR9!N2KD
M (S65JJ-6FR*S  :+RH9+G%]":FYC)ZGYSF+WX]9Y7V!'Y9NQZ+Q0E/8 EL,
M7IJ(,D N*X.T4 /H3Q#VNR1.Y)#*F01OVW2C^C1K^(X)R;'R1]AKV'9'=49_
M"(G^&: D[Y/A #CA[OYU=BBUZ$[#2^E*UE)!SD]1^Y _(:ZOCJV,4>*':0N-
MG*[7H(/[%KHZ*%78-)B<&KO $56N]OH;2P1Z"DK6]B9M 7>V;-#;\IL\U;AJ
MW!B\D*,^W6C]L.ZB*FX^WHU;:+7S,]PC)?\4)#;.Z+!G-_2R'AYM2;;@_O=?
M I\XM[_>$?QW@M>P_A#U1#I2*>X,A)_E]\)KFOQ$[2O%8WT>.%><*YL_(E%;
MMPD?Z-G:'ZDGRTJHJAHJ:NM: G69=O5# :PT!84PI=7O3P#2;C&O'$A7<C _
MYX=?/B%U*HRZG:8%5_Q9%\V^ACN[?W_,T(>(@D-#[3K!PY.C3TW5X\5HR?%9
M;!6G7S_/X+"(L$10#;=^%@P0-X7ML' 2 $-L/UH)C$N&KXA2VD[&D]/=R]A;
M%^]YO=4<(,6@F5B-$,7957AG([1R\\7YZO?;#:<$+^H/Z@8),J,S.87A,4N1
MER?]M'=4L8N^46Z2>B'SN(%(X]Q18"5AGZQ1%*"W_+@KYZM":ZP6/Z1BW\+)
M^WML^*#L,H,D=8S[=$E)25-<I>9\>U0'0?M/-."M^=^I,(7F&C]R8\TN4_I0
M7J\4PL8;&XP"/+2S2AK&529%R%Z#X\B4W#%O#$R7V";>MF()$?V#0;R7'\&Z
MGZ&!4ME-/A+$"'8DI-GG(-*=(/7J.Z7XL>+3 1(!6V0LBC 3X)SZ5@XQX&5\
M<L[BB:8T1K1]C<JKSAP#TZ "^"?@K<+M9+!+T<OO# 2H)B8FBVQ]>KX1[P%3
MN,\APWC)L8L]U,DQQ2+\9<]>%M^SC"9U7R&/CD V3<=43?IYH^?-=TFKL,^R
MF2R6_7=$P$2,VFIX=MP4E7R\,3?@GISS4)?KF;L\9ZWG6HH+D2;\U>@69A+I
M)I^Y(^*>] 14'81!U7 :Q)&_8PA97A15=$>+5W2'?,M"*7P'/,_8Y')!QMB*
MX;Q)?"78HXPQ\U0SUWE-I(6Y1=<\>G,J.]XA9'Z:X+ZQ@ST&G^89$@@A@L:*
MQ$. (6E^J<?NLUT]#<I/.V@4U(LG,]0 /SK7'>RP)$W@3EY#A#I?.Q0[OFT?
M!*TV5\ &GMU\,AGHF^+CTBNLKNHUAL8O7?705-V 4[\81M3B+O%V.,U;%;W.
MACK/X+,*41C7IM;.$ML07/+<CY38D?&=8 :J*HRG*T+]E:MJS!I_W_ORF78!
M"IU^66G;.0K'X+BTEC5TC74IO%N52)H?&2X.#E@,@V3K@5%T-SY4O+POMT.
MP[)&D2*G6Z<XF$F.EZMC&%3^H[T/^#M]E]F5HSK2.9,<2?&7YW;?\%^T/:ZE
M/6Z_ANP[W,FPCC%:@M>AON^I#>#X1^JNBJA]6#\C +A*"MK"+QL6^7I?"4E+
M-?B ="PHKEO$6)'6ZET74V'0F'[E$V2@][\-S/+F3[5-\11P[XY*CZ=$_%5
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
M!UFZ3JVW)@68QJM.BA/MT#@F#E1#@+AT+\+I>Y3;(_\"VM?D4?K?-]F;SN_
M32O]PL":O>=\S:+K[H##BXJ8;6IDZN:*$ZUF.1"/KA16&53H7K$EP"HQ,2=5
M*7T6Q8=2(2$,E!V>46.S8\,+ZE\=2OZE^\CM5ML[G\<]\7J8OD^1+V.X$, [
M$(#&)@T^YE%@-%9//\"8TB 1[LK8*XE2J((-Z91$N6/-I$=K'>LMB-6T'[GS
M\2M9V-D1#14-\5^&-O#EE(Z<JOX"R'@Y_$W$&&X_3 AE\#R[PH7':,#?YN Q
MVN3X<(:Q==U^<GQ\[;[:/86C)B+6/SKZ80@(ND0S=6>2R2_X! 5_%LIXXMUI
M8ME>P#[!IL/[X>%B8\ H?7O_0S^[D\1?@+U*LE7D\V;6T\1E&4__>!^N^#D?
M%FQ%%\ _[<;_F7_:OS$ZS"Y]8G*;P0:_;!3Z7?'IV$Z'Z)%10#OQAV:D;Z(M
M5-W'%IW0V2I9];TV.H#WL0]^QL5&'R[<)9,H;/CC*./[R#!MH=5TS?/</JCV
M3XW%6I)TVB5*'5E8G36QN"*)@1*:U+?\&CO?'PTF'NM0MO'SH3(:X4;0W3S:
M8*.RPW<]0:=$>.1Y*.+_X5J5UIC1X'_Y[,5DG5 25/&DL!U6S%(BHWMQ$UFJ
M;I/G+X%G=5GJ2?7<6DYQL^!N;N?<,)>!WS9/A9;,W2!V.ZZ?[5\..OPYK@R2
MGQLH*=:U,._A:]-D6<4;\C.A$\%I59]49 TC&,(+8R@/>C6+P=2NCO+$C4"$
MDAGM;=[7JOX%A!,A=**E1;6/9K9HU! BS2O16_3]8<QW:@H:D*TP7C=^5T[X
MPS6]]27L<7X[_9N>-<2^VB87M<*?9^*<@@D^WEL=;=D>/'#[R=.-QJ$?!03%
MMPG;7XM;5=MM;J#,OI:9N&QNEC)PVAS]LD0^5S&(?._JY%''P)B20#;%2T**
M,]PD98**B?,M+?$EW\I **)%_%)Y1@ A:"XN<NBZXY%'R),RBYSZ4*W07+1
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
MO@0I*9F8YML9^Y:GO*NO";ENWI C3NXT56V$MHW/Z7 V6QFV\&^SWR .=DP
MPGWNY? 1.AC>Y8.JPX+2.D64?[<HUC<!?UR_>A-D1IZ!_:N>/1+[O-P!VG28
MXXW(ICEH?ZV'0?-_Y?#>A86M'QJB[/BZ_DC<>F+3BS3WH$!3^>)S)3<+O]_S
M$.DG0V*D1>AWY!O'CZ5:FAT--P/MOJJ^$BE:D^:_&;QY-CRI+11/*J+(7,\8
MQPMB8QI&"^?K.C\+,BKLS&J+V*HT11ZLJU,DG6&QQMO(M5W+,N_D^M!\WF3(
M6UP5X+\:N;2VWHT/DWB@YV)>&+2 <IG'/)TDA+A"WD,YQSU^84LDR#:((USV
M<8,.;[EQ9OA.M]L:$T_Q!7"38R@B\C/5AR6_J[L],Y?=DO(.4SE\ G2IJHR_
M+';%9XJ>:O+TLZ#.NAGK$S1;[9&<*[025G_)'<KC!",S$\1? RP](HLZXZMQ
M\0:)'IWZV,9N:*W^"-=?T!UJ9_$6Y(I,REX,DXL_OB%VLW=WI5()^,[43AX*
M'2<$>!R1F;9;F'61\?.5(AV\VU5CGY\<O%\O.E3?,WG'==LP[#6/N:E6(()J
M_P6HS?A4TB!C<5L_C87[?;&3(>"(W=91& @;ZG3 Z?R,:GF@QNP]3<P$TE34
M]T%<8BWAW .H"E#:I5XV'PRD3&R3<V$PU8<Q!F_V4&>IV7/,ZX\ H/'I&L2G
M)!JI5@C#1TL*_(2RECB+Y;6B#;>A[LFH*U.5FZ^\.S0"O''L?6SJI^2"NE16
M:5  5C?:(+ 6X-1P3".ASY4K%"ONSX80O1,;RIH"AK6)>'WUS."R(W,!!+S9
M6N,L9(K4C/O"+LP&D2V7Y))[,>'_%_ ))51^],!&.U'2UZK_%K'/:;[T^M*5
M5*W\S5:>(,_T?\Z^3?I2L7,2E6.6^<2?&T/*-1UQRXS>.8T2@(X@N3MU9G.$
M2/PU=;) 7,U),3B0N#UP#&P0CVQQV(0,.P:AV+'QC.Z6(<M_G%M0=8WSEI<"
MU:QMT4R;9A>?S'ZC?Y8V9UI.N6)L7$R7K;&MS?H55G;W_W#C1#1?;#9<@#?4
MLUSJM$A:2!''^P6)SPT8A39&6.&2=.PL$J8"0>;5$XS5^ZLOW9ZNOM;EC5"E
M7,?5:S6S"4]9DAK2.$:?YZ4XEFB5K;W< Z)C;..Q>,/@[A/QR2.,-]5"92;^
M5O(C6+KE&4*1O3GE?\C89\-D9^\&LS"8DJ]1@71:6V?6Q@;],&OW<*!,XF[D
M)/95\IGNYFUMOX@S>>66$H0(O-'CL:?<;2>3L2M,4K_JKDHX.6U\M=8^]X>E
M>-G)3SHZ>LK+(W="^,L@V$^Q*&<W)67 .=1N^5>$3CWX5US7XWU^U;^ CDF9
MGS\*2"5Z))82 B![G:UMJM&H&%G]PNB+"-S)J<CAO3 /&(_\36#YTQUS&=-Y
MSCF3PN;6KUF''!LE6'O1?P$ @W5"75I>H9_:<D13VO5SGQVJJC"8(ALX[%4Y
MX6\L@^WSASC7ABIIU7RZ3"(-RA6\']<NI&KU!:1T.E[ECA0JD)IW?P%._M74
MR>"$\O*&Y$/-^Q_=/1NYR]WTG"W7)?ZR1KP(TY+]B6)GM@W_J].$O8W>P0Z\
MS0_E./&,.8OSFRPSKK*U"NIUZ:.ZR6?-JLN=D>SA^F"'5?/<.7/3;\WN9N)^
MFE1$-5Y+0))I_!PF'3TM0W^J[X3/EO(V958$\)<10EQ"R! [U;?4]$H(=OR2
M=RE#6:C%>F*>0'K^]RU7&A=I;E*PL&JV*!DC&4V2O/O*SD &$"L<ORG\<W(<
M"D+WXD0;Q-XZ)?;NCDR=S=*[G5'GX6MPKH+_9(BKU&&> \['N!V:+X?&$T!#
M8>.QIY4H/5!ZNG=X>DHG^R4)GG+K\-9T3OL6@_//WS[MHQ']R-)7#L $XR+3
M]3K#MXB7?6RY0Z[J=T74QSS%W[Z(/N',=VA8*U W4RXL>J<BB0XD<@D03Z<4
M5BM=^=R82<=+A&5-P O]'J$:3%A JF:VY'8]P=ZW5#<^\:P!X6@PLL;#U[G=
MOI05!CTTG.N_=$HV'G%S/6H8<7M2*KN,FWQN_!? K/O[S PK,N]2D\>D2'V_
M^>,,506/*H&N*@%.W1!5U.!$9*0S%NG;.J&DC-J-J1I!H6^Q@*NS6VV4>GJZ
M;F>FM>P'."\(Z/XETWHK=T(<4WR1D"NUL?AE8M?<ORS"BZ\"Y/!3:,H)LBEW
M4E_);=41=K=.;:\OJ'2(,[OVNBZPI=V9QZ[5^W+5AC+=]N&;R_LDIP11+4Y)
M2MPY7@20 R[6HENAHX\G.0%P]X)>6<Q9@/@Q)_R%429LT.K/WOX$R,!D9#IK
M\'0'J5>>M!Y^ DK+'=:SYUBW/JSIW\#6EG8YEK0QX+[G?0R&!9 8%1(S*+'"
M3'M0XN>;QL.0=J]\<Y3]7&SBEOH<'[LQ!OE=70]D6=]=@<6.BR;="9,2('9N
M:Z[TJ+70X76M=(/P=50\OU]Q\(,1VL! U]2(K),L2'/*EY+3,A\?/]PD(4>$
MI@U7ZJ2-PWAXT:I11:T+<]/1M/$J6'U6R1E7>[1\@M$*9'!$R/3):K70G/VU
MYA?7%&TD.":U"AY-)1,Y_R0>YH 3RRRRQ'8GHW.?/M!4/3Y#D&OJ)I=-3,$?
M@K8 X7O(T12&1DNG]+UGTY*R^YJXW@H37U[5S <>'J"QIA;;#^9<+!PX_WD4
ML6Y-*_3<X=/G'(]; X8M8H>6Z8SBN>H94^@IRVC,V^'AXUU?_'%"/5C -$Z0
M2*69TZIWK=\>0[0K1W@>X)6GBXNK+H@U\/TEF=C0)O3SOEBNMD]K%UCS8][L
M.H,_#=VJ& ,3D*<.89M=*#4:ZKU4V&/K[%3>?#/=2R'.FBC8;B35/:24-Y]@
M97<SYK((8_!FK5(50E(,=W]39&1.VI'37NK.ZBRWO3-80%6PW;VAL3# (Y4:
M&G<BSJ?['A!25&E"Z+TE/;.??)C+<;EWB?[8S)9)VJN9MV?)3"A5^Y*&QAFG
MNQE&8+9?1)%0_8.)3,G$]/ #LHN<K61'> @U_/UIP15=F/"*OE=X?#RC+CZI
MK-$.L 5E^[7Y\HRC/9%R^.1<&HPLB/SZN.LY@\=9WD+]]A:UT]5W7VG;7TAG
M?U;=%#8A1V/5*FTT)FIDW\0H44F.IT%+N%=R5JRQ935SE<02G8S,_\+(H@?"
M2RD#F_$-=.8[4XWF&<,E#8P%?GKB>6 4&;6_[/*%+!Y@^"!5>^\PJG-H;-XT
M0K(L\[&)I_"0(_IW9OGMNEH79$;(3*[6.8S\,"1+B8KO -G R_=,">C:8YR&
M%D;';X_0R?WY;?MQGE+)PP;"J]^5"?1\556S'M1/,8+VPBA_0Q#[,,TNKQ%'
MSUEKL)D?=PB2"N,W =Q]F84OQ"Z:D)>BRZXUG F&CM0FODB7K>/=KY[R9[AU
MPW)XSUOD%19?4Q#+$)C^BZ->G8W#T=85(#SXFYXZEIXBOY3-R.#<)MA1&@)_
M8?KM!O:B\X=QH0%6?7P\Z=<S[6RM^J\MB$UG'D>KM)81AOZJFI5)=7;<PPZ
M_]KMD.G\1,:6O>47'V?&&6!X<48[N49#JWF7P,:OMOM3J>OIEX"W$60>!@R@
M.5-C6XC\] CVQYAQGHSN(ZK=\.M*(15&"EX]U?K!(J)R0?QI79RC_P8;J?]=
M^+OR/P!02P,$%     @ F(175"67TAUN$0  .E(" !<   !F:7@M,C R,3$R
M,S%X97@R,60Q+FAT;>W=_5/B2!H'\'^E;Z9F][9J("\HK]Y4,8@KNZ)S@CL[
M/S9)*UTF::[3Z+!__74G02'B&$?'7<-WZE:]0$C2/.3#TZ][_ZI4^M&41A[S
MR>%X>$1\X<U#%BGB24:5WGK-U92,Q6Q&(S)D4O(@(!\E]R\8(:VJXU3M:G.W
M4OFPIU^JE^TCHC9Q+;=FN;;K$KO5=AOMG1WR:4C^?3;N_9(\>_^D-_[RJ9\>
M]=/9QZ-!C[RI6-;G6L^R]L?[Z0,[5=LA8TFCF"LN(AI85O_X#7DS56K6MJSK
MZ^OJ=:TJY(4U/K6F*@QVK$"(F%5]Y;_YL&>VZ)^,^A_V0J8H\:94QDS]Y\W9
M^*#2U,]07 7LPYZU_)T^=R+\Q8<]GU^16"T"]I\W(947/*HH,6O7[)GJZ#TM
M_7#N.5\KU]Q7T[9CV^\Z,^K[/+JH!.Q<Z2W5VN[M-LDOIK<;17IQ;<D"JO@5
M,Z^^\KI>P*AL3X2:=O*'V+3G;+G?N8A4Y9R&/%BT?Q[SD,7DF%V34Q'2Z.?W
MZ1;].V:2G__<29X=\[^8?FE]@0&/6&7*TO.L.JV.8E]5A0;\0A_-;.VD1=+.
M2F.R=M3K=,>)"'S]8/_/P\''P9BX^H7VK(DNNMG?=9IF][4#)R]5UP_>.>\K
M'O,)#[A:M*?<]UFD]__I;=.U:YT]RSS[I:[#TQ]')A]1WJ.SCZ/!_J![.NB/
MR,D!Z9T,#TY.QV3T933N#T?D;-1]_]-;IVYW!L>]Z@N^(X^^$AH3<4[VF<?"
M"9/I.=><]T3?5UXRDC:>]_.'4G)#4702L.7K3H3TF:QX(@CH+&;MY1^K)V^.
MF)VWN3UX^A%]NMG)IG<?.E=BN2&]]21;UNY0M:IYH?4;5+IMY8;SAB0%HN])
M28F8^Z?4_TTWO861D"$-5HO1'*=SQ:3B'@VR;?JVID28'6/7U9:\ZV17G3[4
M=F9?22P"[I.W=O)O]7W(SM?\36K5W9;^=?OGL]P-FYMBXQ'WON/Q8/R%''>'
M_9N M=3T:86F&<I*K%;=:;[[!Q3(4S[DZ<?Z[L_G*Z^U('.:U1WW-0394\IT
M_V38'XT'O;V)_/#;V>E@M#_HC0<GQS\F!IT=Q."C8M"UJZ4/0?V58]A-8D['
MX'YW_$/N?TZUV2I'[*V7CI6X:O[SEWO>6P:9FB]:"*T[A> V<AF/HY^2% N/
M]#<>U:XD6XI\AVI5=Y.'N[V!3CEURA:9ZWY/!I%77?V^9"F_4 ']#4@^_2ME
MP>^,1<L@4^\?&R1KI?*TL-G7R? UE>S[0N7%+7MR'OO,D9+:]'<7@8Z4!SXM
M=MURZY;3:C4?]T%X>3%>]!V&'$8.+LEH$2L6QJ0?Z=V8/HWH H2 D$+Q\YG&
M4WT$)2(@4FY$=BVGJ1%IU( ($+F#R)B%,Z !- K%RY#J8\*+4GOAV):SBZ0#
M7FSR(E"2?B5C(0)"(Y_T_S?GLZ0O14^0HZ,>" $A#X30F$41BV,&1DK.B&O9
MIG>4 T; 2)Z14#'O4IL1AG/3\&$Z>)$AC>@%2S"!)) $C2" 9-D(8N\"$D!R
M/R2'(O ])"!@ VR C67^X5AV VR C?O9&,TDCRX#)B$'Y( <D"-+.!S+1<(!
M.>Z7XSW  !@%HN5WO=O<NUP C'*#4<]:S%L  V#DP#CMF7:.<R'537==,S@9
M/:Y "'(.$+(DI&8Y#72Z B&;")'Z+#CITQ@MXT"C2,28<_LBY"70*#4:Z&(%
M-.Y%(XZ%QY.IRCX*;MHXLNP#F0<0*11!@\CG-*(PI.R&.$DS.48'PI#<'>!C
M[S#I6J5?$VR C6)!<Q (R7VP47HVW*9FP]X!&V#C+AM'C,;);"2HL (:0 -H
M)&C8IF.5TVK90 -HW$5C=2+$H^I1M8=\ W2 #M"13DK2,I-8U4$'Z,C3,20]
MO56*(-9_R)F0R8ARX $\'IS/*HZI-YW'3*D8A)2=$-/+JM5$E14(R1/"@T!$
MC'QFZ&,%.@J%#/I8;8<:Z&,%->Y3(Y@STDO:.(@_H>3PCV[OE/GS:L04!($@
M#R4?>@LZ6)4=$-NQS(!RVVX $ "R?@?HZ2L]%S+B%&,$ <DSA!$L*;<EV5(>
M3736A27YFX (A+X#!)_99)(VAU!/"6E:1,(9C;YS#@HXLD6._,'-<Z%(V16I
M6373G-YPH0@4R2MR)PTA_^[*2QK%-/X%&0DD*11&RXB!)&67!+.60)+BD@Q,
M#(5B'BG*(W "3HK%TIFB4U!2;DIV+3.-8JN..11!21%*EG.K0A$H4BR,,!OO
M=DCB6LEHD:8#22!) 4F&W"<C,5=34 )*"M9O!71"0S24E%R29IJ3H'H+DA25
MI*L"&NFR^ 53GX"2(H&$1O?ML"3K!NQ@[A-84L228[UE>LUBA:P$E!2+H\\T
MGNHCJ.^=^@"8O!9,7,O9P5!V8%(4DY,I%W $CA0+(1,M$*34@I@6DJ0/,)K;
M(4@109(&$M)C9EQ) $I 2;%8&K.OZ 5<<DOL7<O=P0AW6/(H2QA%U18<*1I'
M6 9W.RBI&4K0X@Y*'D,)6DE R6/&)O*_!*;=*KDD9H$J,]MO TD))"DDR4)2
M;QXS0 )(BH419@#>"DET3F*;2;?JNY#DM4OR9"62^FS3M[?Z"42 "#1_P >#
M ^JLX(/QX5?- O('X( V#?BPZH,+'^"#]F&D)%7L@GNDZWEF&JP8PP2!19%H
M&D0^QV(AI;>B8;E-6+&%5D0C)J_(QSD/S+D2\_^XIX\OSDDVV02D@!1%8@ES
MDVR#%*9]NVG&DV,2=TBQE.)7)O0K00I(42B6LG"!%.66PK'L9'@&<@I(L90B
MF5V$]*@4^A@  V 4"JGUJ($;I7;#C,5P,6-5*=QX_AZTW[!ES**(Q3%C8 6L
M%(FFFX"!*.4616<B#8@"41XORE>*EG)H4E 3]+G= DF0FT"2QTD"0 !(D0 Z
M"(3D/JJW2D^(F;C*MC&L#X3<)41)$1#]VV,S%9,A\Z8T,H4 3: )&MFAR5U-
MG 8:V:%) 4T@!^2 ') C+0,S-C!99+ ..2!'3HY1,NF(8V,U09A1*&+00VN;
MZ+ M-UE3$"N=@XX[DTO$^DI7*ZX&D2?D3)@!Z#XD@20/9JV!CA4?"T&5W! -
M2-(,4H,A&PV9KIWW=7KH2,B0!JL'-Q_$SA8RPX/ M+'_*L5\MFGFJ^ES%6&Y
M^7FV8MHBH39.B?*,\59BPYZME%X-<_D5<Y_O U=F":?(IE:90RT<<J?OE@FI
M4]E2)]=R6YBL"]5OF\!81-0,A"2]K,Z-BPAP  Z,7=EZ-NRZY9H&_R;&KH"-
M^]@84JXC)Z*1Q]#C&(@ $2"RCD@S'4IOH]<8$,E]_OMD)(*YR3ABB $Q4%\%
M,Y:)1SI&I04S\F98BDX"IG_[_&K]YU0N7W1"O<L+*>:17_%,YYCV6SOYU_$"
M1F5[(M2TL_Y =O9N[FKL[,PK>A<EPG;-OOF\9A]RNUJ[H:DBTR)8VZ;?GG2W
M&;U@E8ED]+)"S_5;WJ;!-5W$V7O7:%5K[SH3(7TF*^DFVY25OK+E587T:_:(
M8]OO<C>;])C+;6LG,A,Q-\:T)0NHXE<L][HKA9(_Q#U[ZF@T;\)-<:=GK4LT
MH+.8M9=_K,9)79= 5JCF()XP2=-Z6=*Y$NLEF6Q9N\Y:M7X;U]FSTFTKI_V&
M)+&GKRSY;+UY>O^0].U?_SJ27746&<[L*XE%P'VR#*D7_1PV-WT,US]UDTV7
M/Q&!;[Z('(\'XR_DN#OL[UF3,O0(V5@@#WU'^581_?36J=N=NS^?K[S6@BS[
M3O//#[*GE.G^R; _&@]Z>Q/YX;>ST\%H?] ;#TZ.?TP,OOC7G]<>@^G7I7*'
MX,')Z;";Q)R.P?WN^(?<__Z&+V8_*/;62P=]+]'W$GTO7V&-P6M6%7TOT??R
M'Q<GJ,XV622-=4A%Y)!19;C[B8:S#ND)D?;(Q&+;J.(N,C!:G]L7(2]1QUWJ
M.NYDI6UC#?IDHETT#XE_3:4?DW[ /"63,=$T\E>&2 ,38(+V4EBR;"]UT\6X
MZ[ $EN0MB:ZX%%&H]]:,=+DDHX5.4T)TT@0AQ?(13-2T/9(X=K;P$29J@B0;
M)3$3Q((.T $Z0$>>#IV$@ [0<?=&<% EGZL$<U- #]1=@8U\.XB=S"J.OOY@
M([^N@*015XR,%-4_#T6R2EY,>B*<T6B!1A! 4BB,]EE KZG$HMTEE\2Q[!K6
MR8,D#TKR*9B'D]L>6EE_+>0EX*10K98^MT,=./&4PY22FV(WK)I9N,)&I=:K
M-^4QG_%#%L=K_:U  VAX.&R&5"X"&GWGJB50X96HX+BI"@XRC:U287#%%JL+
M%=U41$$'Z%! !Q['YG^S&0<090?"],FU;1= ;!,0OPN?TTMR1"="WLYM!Q_@
M ]HI@,,*#CLF>V@ AVW"825Q&.L_T[]NI\Q&8S:0*!!%F#.[_$+8NY9KA+ A
MQ'8)T?^T[.5$>J(*$V!"L7I)])3=!A5:ENU@)852J/#<_9N&OZVV2R"I ""/
M"I\_N'DNAR#E%L3,.66FG6HAKX @^5Z-.PWGCR]D+.>Q@A@0XX%P.5-T"BW*
MKD62;[CH^PHM-L[LT V9F9TPPLR$  2-W4!D4Z55S2SEIE,.3$T(1'*W@).#
M W2-@A9HX0 66<:ATPUTFP46F^X GT2LR F]U/E%/)<T\IAI(B='RD>V 3\>
MBIX>7>@3(X/8C,Y#]ZF2,V)G'6PQI108R3,B6<B9)/KW.9V8VBLS1 -C-0 *
MNN'"D5S=E6,Y=>,(ZJ[@2.[S_]\Y-:65+*B!]?X@R5-&A7M3?D$C8%)N3%J6
MSDN<5M,&)L!D_19PJDLI8!,F+W1F\E$*-642G7<!2+'H0>?=K0#$<4WCB-/:
M138"0/* B 4-*)>WDZ2C'@MX%(F<@T!([L..<MMAYD5W,700=GS3C@TC",E@
M $D@"22!)#?56&ZR0"RJL2#)8R0!(V $C("1V]80)"1@9-,=8%0=5,FO(O!-
MCTVL]0<^P ?XV-3#UVDUP ?XN,/'L$J.Z+5DZ1@1^ $_'M.O-XI8'#.,2R^W
M(';-LIM&D!H$@2 Y01B-142Y1)T5T"@2,$,L^[<-9NBLPS5FU)%UP(R\&5-Q
M?AXQ^3L-E/F3#/LC)!WP TD' +E-.G8MIVE:/;!N+ #) Z*HE*0?,$])[JW5
M6PDY$Y(J]IW?+T')%E&23LS9H](,0D4S2,D]:9C.6$YK!_-EP9/\=\KNB'3G
ML9+ZBBGYI!:8*@N"% F<FZ !'N7&HVYJLUS; 1[ 8P,>_8C)BP6JL*!&D8C!
M=.[;@<:.5;,Q_ -HW(/&4/CS@$JR3Q4E1SSDJ+6"'@^'SD RM)^7'@\SO;N-
M>7F!Q\8FT'!&3LWK+T<,HO4<>"#U@!ZK(\]WL7@M]/A6!YK-#>A0!(J@#Q88
MR9H];#.-8AVKVH*1_#V@/])N1$J* /.5P(U",?.[WFWN72[ 1JG9<%PS?;MK
M.^BZ"S;R;$R9#&E ^O^;\UFH7P-56$ $B "13>,_S()2-J9P!R)Y1"2/S()2
M2?Y!/24D4A#H42ATN@&=T!#]=<N/QZ[)0-#^ 3SNX#$/)^*F\0.C!B'(H^('
M2TAM!R'+M@],8 )"<K> SS2X9+<#T&FPGHF@(@N0%&I%Q[+HI5>D9KDUC &!
M(M]0)-)[,'T&6 <==( .T+&DP['<EFD P9AST+&9CD'DFPDH. W0_ $X  ?@
M6':_,NM%.3N  W!LA&/\YW+Q\]NQ'P $@  0 )*VGB>55ECO X#D 6&QCI>(
MC!15^L1N%Z]%W14$*11!9XI. 4BY :E9=C+\'*T>=P"Q%)T$3/_V^=4/NX"G
MGV]R=NG/J5SN/*'>Y844\\BO>"(0LOW63OYUO(!1V9X(->VL/Y"=E)L[23L[
MP^PV8U=K-UA69'H9:]MTC+1K:41<L,I$,GI9H><Z[MKT2G _BY]&JUI[UYD(
MZ3-923?9YOJMB? 7^M=4A<&'_P-02P,$%     @ F(175(G+R9J$ P  ^ D
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
MT^JVT'0I:Y9</9N2Q\OGNGB?(XB5E+PT$"U_#+Y'^P+D7JMRU\S&0D"/SOY
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
MK.)9.=!2NVSIL/AJ,%RC#C5_!^[=;:I#5=-Z'2>_(/F2(.F^2$C2+%;]-94
M5B$Q#(M JM'4X!53 8#-H;0J:'95,X;3.@P#_8 -0$,.6"VZ-47(X-ROY#!A
MI,^1NAA#KY)5R.8Y$7K-8JL4FS\9./51OD+HHV!7*:J"J]91'<S5OH#C_;8.
MN)2\$52'?BW9N!NPUS%:]U&2%K@Z2,?#<:<BR'< M@T+WH3_'@QN<8FM0/]*
M.[5U[Z%21XO?&,XZM]2*G$!\>NB4S$2)Q;(^>O0T/W7U[FSA]4%SZWVK\YB3
MWZ*",QJA5[;^^?;NV##5*BRT$:]5"E/W6PK?7ID#XD)<J(N<#<;<#M8UYGZJ
M,'@.SWU*9'S?G=_:S5_;^#*WL4\W%JFJ.Y6@: BMCSK5]BVZC>.F=MZY4GZ^
M)6:+PK5)'3RVC"/I/7?([<HSZ"<"9;Q(<*2RE2@)$%7..%#8.J,"4845CSM.
M!^F!QQUWS[1?K_DK#O^:"UYFD:$'>DTFWGQJE%+;>D<CS4'-?="VYID9S\C&
MQC054H7IZF[^J93[2TA\#MW\NE&YJG/N7<+>&;R_#UP_CGI#B)RYHK$<6 ^0
M45:13 I'33@; I4"U8 :Z+=1]9DS0K/EW3N<! Z9,P+]<\%OJ+KLDKS-5C4:
M%^K%U4R=7FOR##-M]XE+D=$B64_PF*LP@2BP95 UCE&9@T3I2@II/@CRZA/
M]468K-_^W(L8=\O]]@;_K%\Q;3#03=GJE5:.Y\28"8+_,G ,--/#-YPVA[R#
M(W/76;&K2F;KXUSUJDR_>QO\"U!+ P04    " "8A%=4!C.T8Y,&  !N'
M%P   &9I>"TR,#(Q,3(S,7AE>#,R9#(N:'1M[5EM4]LX$/XKNG3:TD[\&J!@
MA\RD(5R9:PE#S/7Z4;'E6%/9\LDR(??K;R7;B1,X6IAK*9TR$&)I)>VN]ME]
M)/=_,XQQEN L)!%Z%WQXCR(>EBG)) H%P1):%U0F*.!YCC/T@0A!&4-O!8WF
M!*%#TW%,VSS8,XQ!'Z8:U6-XYB'7<GN6:[LNL@\]]\"S773^ >U<!J-76OIX
M,@H^G8^K5<\OW[X_':&.85D?>R/+.@Z.JXY=TW90('!64$EYAIEEC<\ZJ)-(
MF7N6M5@LS$7/Y&)N!1=6(E.V:S'."V)&,NH,^JH%/@F.!OV42(S"!(N"R*/.
M97!B'("$I)*10=]J_E>R,QXM!_V(7J%"+ADYZJ18S&EF2)Y[/3N7/HRTH'M+
MYMI8T$@FGF/;S_T<1Q'-Y@8CL806TSU<MPDZ3]:-O#+.$X1A2:^(FKTU;\@(
M%MZ,R\3?7N*VD7DS+N:9-&*<4K;T7@8T)04Z(PMTP5.<O>Q6+?"_((+&+WTM
M7=!_"$P-!C*:$2,AE9ZF<^A+<BT-S.@<5E.M?N42K_;&;&/5135PQED$G>/K
MA,ZH?/',V;?]GFNZ?6L&_LL?2U<U_#_5O:(%*,NH7'H)C2*2P8@7SPY<N^?W
M+27]O30/ 85$W,/-H_%%<'IR.AH&IY,S@-3%]')X%J!@\AW=?6^EG0-T:4[-
MD8FFXY%2O(H2I[=G_\AJ#Z=H>#PY#\;'3\71&^X]M/?1Y 0%[\9H.KQX.SP;
M3XW)7^_'G]!P%$!/)>7:MOOZL6WZT<%*,UA6>KW]?"O-G&8HY%E&0I6AJS(J
M$X*&659BABY(SH5$/$8CGL;JZW192)(6Z'(Z[%;^/\U"$^VH0<HFU_9!%,KP
M4C\Y_BNHL^B$B[2&C&W\@6 FO4I,BQ!664+E0 0TC- Q"4DZ(Z+.PDX707&&
M3UR ,&L*O1H[)6$IH*Z <W 6H?$U%,T,RCVLGM*B4-; KY*,H-JCA @"9K3U
MK(QKU.RBTR[Z"+R!XA3]3J!8DR[,"JNHDH7^I"%!YX(45#E2+SE**(G1"<V
MF% P8Q+'("24M]0JM1NZ"-HDC>%+7HJBQ#!:<K3.*,K4-SJ5:#-QQ'/%3MK"
MTVI[UJBHEYAB,<,9*8S)-2-+- SU5BE =*$?2^_QXFH#$5\) (EGC* 9%Q$1
M1QV[ YYCK"8CJ^<BQV'S7$]?C3!"SAC."^(U7_S_U^":70'%D3S59K;XEGK4
M^AL,+WDIO9A>D\AOT:!*R\8]4L!?U%A0B6DO*LXFHW;GG59L:WVE@@U 52<K
MO4F@G[](J"2&<A[Q,KX0./=;B]9.KI5SS&T5-OMO9KN'^KAZ5!.!4B+%S&\G
MS[KIKF2L:"MH%  8ZEP5EXPM(:>E.5.Y894O!/F[I(*H4T.A4+*!*:>W@R%1
M">3L[42O*ASF,$&H=K2[@MLZY:S238TYY["WZZNLL(IGY4!+[;*EP^*;P7"-
M.M3\O7%O;E,=JIKFZSCY!<FG!$GW24*29K&2U]0"6(;$,"R"5HVF!J^8"@!L
M#J550;.KNC&<WF$8Z =E%3IRP&K1K2E#4VYAPDB?*W4Q!JF25<CF.1%ZS6*K
M%)L_&3CUT;Y"Z%?!KE)4!5>MHSJHJWT!Q_MM'7 I>=-070+HEHV[ GL=H[6,
M:FF!JX-T/!QU*L)\ V#;L.!-^._!X!:7V KT;[136_<@*G6T^(WAK'-+K<@Q
MQ*>'3LA,E%@LZZ-(3_-55^_.%E[O-+?>MSJ/.?DU*CBC$7IFZY_O[XX-4ZW"
M0AOQ6J4P==^E\.V5.2 NQ(6ZV-EDT.UH78/NIXJ#AQ#=^X3&XV[]]G;^VL>G
MN8]]NK%(5=^I!$5#??5Y_V-NWZ+;N&Z*Z8T[YX<;9K8X79OEP6/+5I+><LG<
M+D6#?B)0QHL$1RI]B9( <^6, Z>M4RPP5UCQJ.-TD!YXU''W3/OYFM#B\/-<
M\#*+##W0:U+SYE.CE-KE&QII4FKN@[8U\<QX1C;VJ2F9*FI7E_?WY>!? N9#
M^.>W#=(["'QG\/HVJ/TPV@TA;N:*U7(@08 15G%."B=/."H"LP+-@"GHEU7U
M$31"L^7-*YT$SIPS O*YX%=4W85)WB:O&HL+]5YKI@ZS-9>&F;9EXE)DM$C6
M$WS-39E %,@SJ!K'J,RA1>E*"FG>"?'J$Z#U19"L7P[=BA=WR_OV!AVMWT!M
M$-+-MM4;KQS/B3$3!'\V< RLT\-7G#9GOC>'YJZS(EM5FZU/=]6;-/UJ;O O
M4$L! A0#%     @ F(175#U\BQR0'P  'FD! !               ( !
M &9I>"TR,#(Q,3(S,2YX<V102P$"% ,4    " "8A%=48B_OF9(8  "=F0$
M%               @ &^'P  9FEX+3(P,C$Q,C,Q7V-A;"YX;6Q02P$"% ,4
M    " "8A%=4E@:O%.]3  !XN 4 %               @ &".   9FEX+3(P
M,C$Q,C,Q7V1E9BYX;6Q02P$"% ,4    " "8A%=4_0T$ZKW1  "H9@T %
M            @ &CC   9FEX+3(P,C$Q,C,Q7VQA8BYX;6Q02P$"% ,4
M" "8A%=4TSN^Q!2"  !AG D %               @ &27@$ 9FEX+3(P,C$Q
M,C,Q7W!R92YX;6Q02P$"% ,4    " "8A%=4"YIY\>^7! #=@R\ %
M        @ '8X $ 9FEX+3(P,C$Q,C,Q>#$P:RYH=&U02P$"% ,4    " "8
MA%=4>CMRFW1J  "V@P  %P              @ 'Y> 8 9FEX+3(P,C$Q,C,Q
M>#$P:S P,BYJ<&=02P$"% ,4    " "8A%=4)9?2'6X1   Z4@( %P
M        @ &BXP8 9FEX+3(P,C$Q,C,Q>&5X,C%D,2YH=&U02P$"% ,4
M" "8A%=4B<O)FH0#  #X"0  %P              @ %%]08 9FEX+3(P,C$Q
M,C,Q>&5X,C-D,2YH=&U02P$"% ,4    " "8A%=4$:UB520%  !-'0  %P
M            @ '^^ 8 9FEX+3(P,C$Q,C,Q>&5X,C-D,BYH=&U02P$"% ,4
M    " "8A%=4&A-3JQP)  !G/   %P              @ %7_@8 9FEX+3(P
M,C$Q,C,Q>&5X,S%D,2YH=&U02P$"% ,4    " "8A%=4C2T7)QL)   R.P
M%P              @ &H!P< 9FEX+3(P,C$Q,C,Q>&5X,S%D,BYH=&U02P$"
M% ,4    " "8A%=4>FHQRXL&  !/'   %P              @ 'X$ < 9FEX
M+3(P,C$Q,C,Q>&5X,S)D,2YH=&U02P$"% ,4    " "8A%=4!C.T8Y,&  !N
M'   %P              @ &X%P< 9FEX+3(P,C$Q,C,Q>&5X,S)D,BYH=&U0
52P4&      X #@"P P  @!X'

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